VisualState.Setters 中 Setter 的 属性 属性产生语法错误
Property attribute of Setter in VisualState.Setters generates syntax error
我想为我的 UWP 按钮制作自定义样式。所以我从 MSDN 复制了 button style template 然后 只 修改了 "PointerOver"
视觉状态以确保我得到了它的要点。
下面是我目前所拥有的片段。它在一个名为 CustomButtonStyleTemplate.xaml
的单独文件中,在我的主 xaml 文件中,我使用 <ResourceDictionary.MergedDictionaries/>
.
导入了它
<Style TargetType="Button" x:Key="SpecialButton">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="ButtonGrid" Background="{TemplateBinding Background}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="ButtonGrid" />
</Storyboard>
</VisualState>
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Property="ButtonGrid.Opacity" Value="0.5"/>
</VisualState.Setters>
</VisualState>
.
.
.
不幸的是,我的自定义 <Setter/>
产生了以下错误:The XAML Binary Format (XBF) generator reported syntax error
.
每当我在网上寻找类似的代码时,大多数人都会将 <Setter/>
的 Property
字段设置为类似 MyButton.Opacity
的内容,其中某些 <Button/>
元素具有 x:Name="MyButton"
。
问题是,我希望这种样式应用于许多 个按钮,我将明确 选择这些按钮,因此我指定x:Key="SpecialButton"
为 <Style/>
.
我想既然 <Grid/>
有 x:Name="ButtonGrid"
,我应该使用 ButtonGrid.Opacity
但显然我错了。我应该注意到 ButtonGrid.(UIElement.Opacity)
也没有用。
那么我应该如何笼统地引用此样式适用于哪个按钮的 Opacity
属性?
将Property="ButtonGrid.Opacity"
替换为Target="ButtonGrid.Opacity"
。
像这样:
<Setter Target="ButtonGrid.Opacity" Value="0.5"/>
我想为我的 UWP 按钮制作自定义样式。所以我从 MSDN 复制了 button style template 然后 只 修改了 "PointerOver"
视觉状态以确保我得到了它的要点。
下面是我目前所拥有的片段。它在一个名为 CustomButtonStyleTemplate.xaml
的单独文件中,在我的主 xaml 文件中,我使用 <ResourceDictionary.MergedDictionaries/>
.
<Style TargetType="Button" x:Key="SpecialButton">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="ButtonGrid" Background="{TemplateBinding Background}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="ButtonGrid" />
</Storyboard>
</VisualState>
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Property="ButtonGrid.Opacity" Value="0.5"/>
</VisualState.Setters>
</VisualState>
.
.
.
不幸的是,我的自定义 <Setter/>
产生了以下错误:The XAML Binary Format (XBF) generator reported syntax error
.
每当我在网上寻找类似的代码时,大多数人都会将 <Setter/>
的 Property
字段设置为类似 MyButton.Opacity
的内容,其中某些 <Button/>
元素具有 x:Name="MyButton"
。
问题是,我希望这种样式应用于许多 个按钮,我将明确 选择这些按钮,因此我指定x:Key="SpecialButton"
为 <Style/>
.
我想既然 <Grid/>
有 x:Name="ButtonGrid"
,我应该使用 ButtonGrid.Opacity
但显然我错了。我应该注意到 ButtonGrid.(UIElement.Opacity)
也没有用。
那么我应该如何笼统地引用此样式适用于哪个按钮的 Opacity
属性?
将Property="ButtonGrid.Opacity"
替换为Target="ButtonGrid.Opacity"
。
像这样:
<Setter Target="ButtonGrid.Opacity" Value="0.5"/>