我正在尝试使用附加属性和样式触发器,希望能更好地了解它。 我编写了一个非常简单的 WPF 窗口应用程序,其中包含一个附加属性:
public static readonly DependencyProperty SomethingProperty =
DependencyProperty.RegisterAttached(
"Something",
typeof(int),
typeof(Window1),
new UIPropertyMetadata(0));
public int GetSomethingProperty(DependencyObject d)
{
return (int)d.GetValue(SomethingProperty);
}
public void SetSomethingProperty(DependencyObject d, int value)
{
d.SetValue(SomethingProperty, value);
}
我尝试使用在按钮样式部分定义的属性触发器更新“Something”附加属性:
<Window x:Class="TestStyleTrigger.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestStyleTrigger;assembly=TestStyleTrigger"
Title="Window1" Height="210" Width="190">
<Window.Resources>
<Style x:Key="buttonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="local:Window1.Something" Value="1" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Button Style="{StaticResource buttonStyle}"></Button>
</Window>
然而,我一直收到以下编译错误:
error MC4003:无法解析样式属性“Something”。请验证所有者类型是否为样式的TargetType,或使用Class.Property语法指定属性。第10行第29个位置。
我不明白为什么会出现这个错误,因为我确实在 section中的 标签中使用了“Class.Property”语法。有人能告诉我如何修复这个编译错误吗?