实际上我不明白你需要什么。但我会尽力提供帮助。
我们看到的定义:
然后能够使用我们必须做的xaml:
xmlns:presentation="clr-命名空间:System.Windows.Controls;assembly=PresentationFramework"
现在,如果您希望自己控件的依赖属性发生某些事情,您应该使用 Triggers 而不是 DataTriggers
样本:
<Calendar Height="170" HorizontalAlignment="Left" Margin="83,112,0,0" Name="calendar1" VerticalAlignment="Top" Width="180">
<Calendar.Style>
<Style TargetType="Calendar">
<Setter Property="Opacity" Value="0.4"/>
<Style.Triggers>
<Trigger Property="SelectionMode" Value="{x:Static presentation:CalendarMode.Month}">
<Setter Property="Opacity" Value="1.0"/>
</Trigger>
</Style.Triggers>
</Style>
</Calendar.Style>
</Calendar>
通常,DataTriggers 用于您创建的对象,实现 INotifyPropertyChanged。别胡闹。
现在,如果您想更改另一个控件(当 CalendarMode 更改时),您应该这样做:
<Calendar Height="170" HorizontalAlignment="Left" Margin="83,112,0,0"
Name="calendar1" VerticalAlignment="Top" Width="180"/>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Opacity" Value="0.5"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=calendar1, Path=CalendarMode}">
<DataTrigger.Value>
<presentation:CalendarMode>Month</presentation:CalendarMode>
</DataTrigger.Value>
<Setter Property="Opacity" Value="1.0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
我建议您阅读有关触发器、数据触发器和绑定的更多信息。