WPF:如何引用触发器属性属性内的其他控件?

| 我有一个WPF页面。页面有一些内容,但是页面根目录布局的最后一个子组件是我创建的用户控件。看起来像这样:
<UserControl DataContext=UserControlViewModel>
  <UserControl.Resources>
    <BooleanToVisibilityConverter x:Key=\"visibilityConverter\" />
  </UserControl.Resources>
  <Grid 
      Name=\"grid\" 
      Visibility=\"{Binding IsOn, Converter={StaticResource visibilityConverter}}\">
    <!-- Border to dim everything behind my user control -->
    <Border Background=\"#000000\" Opacity=\"0.4\" />
    <!-- The following border is red and holds the content -->
    <Border 
        Width=\"{Binding ElementName=txt, Path=ActualWidth}\" 
        Height=\"{Binding ElementName=txt, Path=ActualHeight}\" 
        Margin=\"{Binding ElementName=txt, Path=Margin}\" 
        HorizontalAlignment=\"{Binding ElementName=txt, Path=HorizontalAlignment}\" 
        VerticalAlignment=\"{Binding ElementName=txt, Path=VerticalAlignment}\" 
        Background=\"Red\">
      <TextBlock 
          Name=\"txt\"
          Width=\"200\" 
          Height=\"100\" 
          Margin=\"20\" 
          HorizontalAlignment=\"Center\" 
          VerticalAlignment=\"Center\" 
          Text=\"This is my super awesome message!\" />
    </Border>
  </Grid>
</UserControl>
默认情况下,“ 2”对象的“ 1”属性设置为“ 3”,即用户控件不可见。我已经实现了一些将此属性更改为to4ѭ的逻辑,然后将用户控件显示在所有其他变暗的组件前面。这很好。 现在,我想创建一个淡入淡出效果动画,一旦可见,它将使用户控件后面的组件变暗。接下来,我要使包含内容的红色边框从左侧淡入,以便移动+淡入。 让我们先从淡入淡出效果开始。我将这种样式写到了ѭ5,它应该对背景组件进行调光:
<UserControl DataContext=UserControlViewModel>
  <UserControl.Resources>
    <BooleanToVisibilityConverter x:Key=\"visibilityConverter\" />
  </UserControl.Resources>
  <Grid 
      Name=\"grid\"
      Visibility=\"{Binding IsOn, Converter={StaticResource visibilityConverter}}\">
    <!-- Border to dim everything behind my user control -->
    <Border Background=\"#000000\" Opacity=\"0.4\">
      <!-- The following style is new code -->
      <Border.Style>
        <Style TargetType=\"Border\">
          <Style.Triggers>
            <Trigger Property=\"{Binding ElementName=grid, Visibility}\" Value=\"Visible\">
              <Trigger.EnterActions>
                <BeginStoryboard>
                  <Storyboard>
                    <DoubleAnimation 
                        Storyboard.TargetProperty=\"Opacity\" 
                        From=\"0.0\" 
                        To=\"0.4\" 
                        Duration=\"0:0:1\" />
                  </Storyboard>
                </BeginStoryboard>
              </Trigger.EnterActions>
            </Trigger>
          </Style.Triggers>
        </Style>
      </Border.Style>
    </Border>
    ...
但是有一个问题:我无法在触发器
Property
上设置绑定,因为它不是依赖项属性。当
grid
Visibility
属性设置为
Visible
后,我需要一种方法来告诉触发器触发。请帮忙,谢谢! 第二个问题是,我不知道如何移动红色边框,所以我想在比例缩放方面也需要帮助,我想...再次感谢!     
已邀请:
尝试替换以下行: 原版的:
<Trigger Property=\"{Binding ElementName=grid, Visibility}\" Value=\"Visible\">
替代:
<DataTrigger Binding={Binding Visibility, ElementName=grid} Value=\"Visibile\">
    

要回复问题请先登录注册