Search code examples
c#uwpuwp-xamltemplate10

Setter.Target give me an error with "RelativePanel.AlignHorizontalCenterWithPanel"


I am develop an UWP app, and I am using Template10. I have an TextBlock, that in VisualStateNarrow I want it RelativePanel.AlignVerticalCenterWithPanel="True" and in NormalMinWidth I want RelativePanel.AlignHorizontalCenterWithPanel="True" but I can not do this!

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

In XAML editor give me this error: "An Exception was thrown." - "Cannot resolve TargetProperty RelativePanel.AlignHorizontalCenterWithPanel on specified object."

I have many Setter.Target and they all work! Example of my Setter.Target:

<Setter Target="TextBlock.Margin" Value="8"/>
<Setter Target="TextBlock.Width" Value="200"/>
<Setter Target="TextBlock.Height" Value="200"/>

Solution

  • For attached properties you have to add brackets to in setters as follows:

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

    So your code will look like this:

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