代码之家  ›  专栏  ›  技术社区  ›  Jerry

如何使用VisualState更改TextBlock字体大小?

  •  0
  • Jerry  · 技术社区  · 9 年前

    我有一个页面不想在调整TextBlock大小时设置其字体大小。我使用的是VisualStateManager,但我一定做错了什么。

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

    我做错了什么?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Romasz    9 年前

    我认为如果你把 VisualStateManager 内部代码 相对面板 :

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