如果你有1和6之间的值,你知道的风格应该是每个什么,你应该只设置有datatriggers为每个值(1-6)的样式,并设置任何每个触发器中值
<Window x:Class="WpfApplication8.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Style>
<Style TargetType="{x:Type Window}">
<Setter Property="Background" Value="Pink" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="1">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="2">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="3">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="4">
<Setter Property="Background" Value="Orange"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="5">
<Setter Property="Background" Value="Indigo"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="6">
<Setter Property="Background" Value="Violet"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Style>
<Grid Background="Transparent">
<TextBox x:Name="textbox" Width="200" Height="30" />
</Grid>
不幸的是,这是行不通的。这是需要动态的关键名称(而不是资源本身)。 – senfo 2010-08-31 20:59:40
@senfo:这正是ResourceKeyBinding所做的 - 可让您使用数据绑定来指定资源的密钥。 – 2010-09-01 09:14:13
我的错误...我一定读了你的回答错误。我以为你指的是一个DynamicResource。 http://msdn.microsoft.com/en-us/library/ms748942.aspx 谢谢你的信息! – senfo 2010-09-01 15:04:00