C# WPF数据触发器
嗨,我只是想知道我是否能得到一些帮助,我在让数据触发器工作时遇到了很多麻烦,如果我移除数据触发器并像setter一样放置阴影,它就会工作。但是我希望能够给用户提供打开和关闭阴影的选项,所以我认为数据触发器就是答案 基本上,我想在我的控件样式中添加数据触发器,只需将fancyGraphics BOOL更改为TRUE或FALSE,并调整每个控件的阴影 提前谢谢 这是我的XAMLC# WPF数据触发器,c#,wpf,xaml,datatrigger,C#,Wpf,Xaml,Datatrigger,嗨,我只是想知道我是否能得到一些帮助,我在让数据触发器工作时遇到了很多麻烦,如果我移除数据触发器并像setter一样放置阴影,它就会工作。但是我希望能够给用户提供打开和关闭阴影的选项,所以我认为数据触发器就是答案 基本上,我想在我的控件样式中添加数据触发器,只需将fancyGraphics BOOL更改为TRUE或FALSE,并调整每个控件的阴影 提前谢谢 这是我的XAML <sys:Boolean x:Key="fancyGraphics" >True</sys:Boolea
<sys:Boolean x:Key="fancyGraphics" >True</sys:Boolean>
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="#EEE"></Setter>
<Setter Property="Foreground" Value="#555"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" BorderThickness="1" BorderBrush="#DDD">
<Grid>
<ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#333"></Setter>
<Setter Property="BorderBrush" Value="#888"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=fancyGraphics}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="20"
Opacity="0.5"
ShadowDepth="0"
Color="#111" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
True
数据触发器中的绑定查找名为fancyGraphics
的属性。但是,fancyGraphics
是一种静态资源。您应该这样定义绑定:
<DataTrigger Binding="{Binding Source={StaticResource fancyGraphics}}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="20"
Opacity="0.5"
ShadowDepth="0"
Color="#111" />
</Setter.Value>
</Setter>
</DataTrigger>
我在一个按钮内尝试了你的风格,只是将
更改为
,成为了fancyGraphics
datacontext的一个属性,并为我工作了这么多!,我以前尝试过静态资源,但我错过了源lol,它现在可以工作了。