2016-02-15 15 views
0

我有一个页面,当它调整大小时,不希望设置TextBlock的字体大小。我正在使用VisualStateManager,但我必须做错了什么。如何使用VisualState更改TextBlock字体大小?

<Page 
     x:Class="MyUWP.Pages.SplashPage" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="using:StoryFractalUWP.Pages" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     mc:Ignorable="d"> 
     <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup> 
       <VisualState x:Name="Narrow"> 
        <VisualState.StateTriggers> 
         <AdaptiveTrigger MinWindowWidth="0" /> 
        </VisualState.StateTriggers> 
        <VisualState.Setters> 
         <Setter Target="MainTitle.FontSize" Value="36" /> 
        </VisualState.Setters> 
       </VisualState> 
       <VisualState x:Name="Normal"> 
        <VisualState.StateTriggers> 
         <AdaptiveTrigger MinWindowWidth="600" /> 
        </VisualState.StateTriggers> 
        <VisualState.Setters> 
         <Setter Target="MainTitle.FontSize" Value="72" /> 
        </VisualState.Setters> 
       </VisualState> 
       <VisualState x:Name="Wide"> 
        <VisualState.StateTriggers> 
         <AdaptiveTrigger MinWindowWidth="1000" /> 
        </VisualState.StateTriggers> 
        <VisualState.Setters> 
         <Setter Target="MainTitle.FontSize" Value="110" /> 
        </VisualState.Setters> 
       </VisualState> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 

     <RelativePanel Background="White" x:Name="MainPanel"> 
      <TextBlock x:Name="MainTitle" RelativePanel.AlignHorizontalCenterWithPanel="True" 
         RelativePanel.AlignVerticalCenterWithPanel="True" 
         >MyApp</TextBlock> 

     </RelativePanel> 
    </Page> 

我在做什么错?

回答

2

我想,如果你把VisualStateManager代码中RelativePanel它应该工作:

<RelativePanel Background="White" x:Name="MainPanel"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup> 
      <VisualState x:Name="Narrow"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="0" /> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="MainTitle.FontSize" Value="36" /> 
       </VisualState.Setters> 
      </VisualState> 
      <VisualState x:Name="Normal"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="600" /> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="MainTitle.FontSize" Value="72" /> 
       </VisualState.Setters> 
      </VisualState> 
      <VisualState x:Name="Wide"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="1000" /> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="MainTitle.FontSize" Value="110" /> 
       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 
    <TextBlock x:Name="MainTitle" RelativePanel.AlignHorizontalCenterWithPanel="True" 
        RelativePanel.AlignVerticalCenterWithPanel="True" FontSize="20" Foreground="Red" 
        >MyApp</TextBlock> 
</RelativePanel> 
+0

谢谢。那正是我的问题。 – Jerry

+1

作为一点点评论,不是关于使用RelativePanel,而是将VisualState放置在页面的第一个容器中,它可能是一个网格,堆栈面板,相关面板或其他任何东西......只是我的两分钱 –