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
后,我需要一种方法来告诉触发器触发。请帮忙,谢谢!
第二个问题是,我不知道如何移动红色边框,所以我想在比例缩放方面也需要帮助,我想...再次感谢!
没有找到相关结果
已邀请:
1 个回复
粱委教
替代: