Setter.Target给我一个错误“RelativePanel.AlignHorizo​​ntalCenterWithPanel”

时间:2017-06-10 15:49:54

标签: c# uwp uwp-xaml template10

我正在开发一个UWP应用程序,我正在使用Template10。 我有一个func fetchedNews(_ newsItem: NewsItem) { print("Item:\n\n\n\(newsItem)\n\n\n") self.newsItems.append(newsItem) self.tableView.reloadData() } TextBlock我想要它VisualStateNarrowRelativePanel.AlignVerticalCenterWithPanel="True"我想要NormalMinWidth但是我不能这样做!

RelativePanel.AlignHorizontalCenterWithPanel="True"

在XAML编辑器中给我这个错误:“抛出异常。” - “无法解析指定对象上的TargetProperty RelativePanel.AlignHorizo​​ntalCenterWithPanel。”

我有很多Setter.Target,它们都有效! 我的Setter.Target示例:

<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>

2 个答案:

答案 0 :(得分:3)

这是一种为自适应触发器创建setter而无需编写一行代码的方法。由于VS既没有为写入提供IntelliSense也没有提供错误警告,这有助于防止难以诊断的错误。

  1. 转到 States 面板,单击以激活要添加setter的可视状态红点将在此视觉状态的名称旁边显示。
  2. 一旦激活,请转到对象和时间轴面板,然后选择要在此状态下进行交互的元素。在您的情况下,请选择TextBlock元素。
  3. 转到属性面板,展开 RelativePanel 部分或搜索&#34; relative&#34;在搜索框中,一旦属性出现,只需选择要更改的属性。
  4. 这就是全部!请随意查看下面的gif演示。

    enter image description here

答案 1 :(得分:2)

对于附加属性,您必须在setter中添加括号,如下所示:

Element.(Grid.Row)
Element.(ToolTipService.ToolTip)

所以你的代码看起来像这样:

<Setter Target="TextBlock.(RelativePanel.AlignVerticalCenterWithPane‌​l)" Value="True" />