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.AlignVerticalCenterWithPane‌​l)" Value="True" />

这是一种无需编写任何代码即可为自适应触发器 创建设置器的方法。由于 VS 既不提供 IntelliSense 也不提供编写它们的错误警告,这有助于防止难以诊断的错误。

  1. 转到 States 面板,单击以激活要向其添加 setter 的 visual state红点 将出现在该视觉状态的名称旁边。
  2. 激活后,转到对象和时间轴面板,然后select要在此状态下交互的元素。在您的情况下,select TextBlock 元素。
  3. 转到 Properties 面板,展开 RelativePanel 部分或在搜索框中搜索 "relative",一次出现属性,只需 select 您想要更改的属性。

就是这样!请随时查看下面的 gif 演示。