Setter.Target 给我一个错误 "RelativePanel.AlignHorizontalCenterWithPanel"
Setter.Target give me an error with "RelativePanel.AlignHorizontalCenterWithPanel"
我正在开发一个 UWP 应用程序,我正在使用 Template10。
我有一个 TextBlock
,在 VisualStateNarrow
中我想要它 RelativePanel.AlignVerticalCenterWithPanel="True"
,在 NormalMinWidth
中我想要 RelativePanel.AlignHorizontalCenterWithPanel="True"
但我不能这样做!
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveVisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="TextBlock.RelativePanel.AlignVerticalCenterWithPanel="True"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NormalMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="TextBlock.RelativePanel.AlignHorizontalCenterWithPanel="True"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateWide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
在 XAML 编辑器中给我这个错误:"An Exception was thrown." - "Cannot resolve TargetProperty RelativePanel.AlignHorizontalCenterWithPanel on specified object."
我有很多Setter.Target而且它们都有效!
我的例子 Setter.Target:
<Setter Target="TextBlock.Margin" Value="8"/>
<Setter Target="TextBlock.Width" Value="200"/>
<Setter Target="TextBlock.Height" Value="200"/>
对于附加属性,您必须在 setter 中添加括号,如下所示:
Element.(Grid.Row)
Element.(ToolTipService.ToolTip)
因此您的代码将如下所示:
<Setter Target="TextBlock.(RelativePanel.AlignVerticalCenterWithPanel)" Value="True" />
这是一种无需编写任何代码即可为自适应触发器 创建设置器的方法。由于 VS 既不提供 IntelliSense 也不提供编写它们的错误警告,这有助于防止难以诊断的错误。
- 转到 States 面板,单击以激活要向其添加 setter 的 visual state。 红点 将出现在该视觉状态的名称旁边。
- 激活后,转到对象和时间轴面板,然后select要在此状态下交互的元素。在您的情况下,select
TextBlock
元素。
- 转到 Properties 面板,展开 RelativePanel 部分或在搜索框中搜索 "relative",一次出现属性,只需 select 您想要更改的属性。
就是这样!请随时查看下面的 gif 演示。
我正在开发一个 UWP 应用程序,我正在使用 Template10。
我有一个 TextBlock
,在 VisualStateNarrow
中我想要它 RelativePanel.AlignVerticalCenterWithPanel="True"
,在 NormalMinWidth
中我想要 RelativePanel.AlignHorizontalCenterWithPanel="True"
但我不能这样做!
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveVisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="TextBlock.RelativePanel.AlignVerticalCenterWithPanel="True"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NormalMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="TextBlock.RelativePanel.AlignHorizontalCenterWithPanel="True"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateWide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
在 XAML 编辑器中给我这个错误:"An Exception was thrown." - "Cannot resolve TargetProperty RelativePanel.AlignHorizontalCenterWithPanel on specified object."
我有很多Setter.Target而且它们都有效! 我的例子 Setter.Target:
<Setter Target="TextBlock.Margin" Value="8"/>
<Setter Target="TextBlock.Width" Value="200"/>
<Setter Target="TextBlock.Height" Value="200"/>
对于附加属性,您必须在 setter 中添加括号,如下所示:
Element.(Grid.Row)
Element.(ToolTipService.ToolTip)
因此您的代码将如下所示:
<Setter Target="TextBlock.(RelativePanel.AlignVerticalCenterWithPanel)" Value="True" />
这是一种无需编写任何代码即可为自适应触发器 创建设置器的方法。由于 VS 既不提供 IntelliSense 也不提供编写它们的错误警告,这有助于防止难以诊断的错误。
- 转到 States 面板,单击以激活要向其添加 setter 的 visual state。 红点 将出现在该视觉状态的名称旁边。
- 激活后,转到对象和时间轴面板,然后select要在此状态下交互的元素。在您的情况下,select
TextBlock
元素。 - 转到 Properties 面板,展开 RelativePanel 部分或在搜索框中搜索 "relative",一次出现属性,只需 select 您想要更改的属性。
就是这样!请随时查看下面的 gif 演示。