我想在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上应将其设置为较小的大小。
但是,字体大小不变。处理程序成功调用,那么为什么字体大小没有变化?
命名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] 删除。
我来说两句