WPF字体大小不变

卡车

我想在WPF中创建一个“ Hello World”。这是我的XAML:

<Grid>
    <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="Hello, WPF" VerticalAlignment="Center" FontSize="60" MouseEnter="TextBlock_MouseEnter" MouseLeave="TextBlock_MouseLeave"/>

</Grid>

...以及我的代码背后:

 private void TextBlock_MouseEnter(object sender, MouseEventArgs e)
    {
        this.FontSize = 90;
    }

    private void TextBlock_MouseLeave(object sender, MouseEventArgs e)
    {
        this.FontSize = 72;
    } 

当我将Mouse悬停在TextBlock上时,应将字体设置为较大的大小,而在MouseLeave上应将其设置为较小的大小。

但是,字体大小不变。处理程序成功调用,那么为什么字体大小没有变化?

山姆3D3v

命名TextBlock并影响新FontSize给它

<Grid>
        <TextBlock Name="Tb" HorizontalAlignment="Center" TextWrapping="Wrap" Text="Hello, WPF" VerticalAlignment="Center" FontSize="60" MouseEnter="TextBlock_MouseEnter" MouseLeave="TextBlock_MouseLeave"/>        
</Grid>

和后面的代码

  private void TextBlock_MouseEnter(object sender, MouseEventArgs e)
    {
        Tb.FontSize = 90;
    }

    private void TextBlock_MouseLeave(object sender, MouseEventArgs e)
    {
        Tb.FontSize = 72;
    }

更好的解决方案

更好的解决方案是使用触发器,不需要事件处理程序

<TextBlock  HorizontalAlignment="Center" TextWrapping="Wrap" Text="Hello, WPF" VerticalAlignment="Center" >
        <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="FontSize" Value="90"></Setter>
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="False">
                        <Setter Property="FontSize" Value="72"></Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章