WPF 使用Lable控件实现Button效果
这里用lable控件实现了三个按钮,最小化,最大化,关闭;如下图:
lable新样式代码如下:
<Window.Resources>
<Style x:Key="myLable" TargetType="Label">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="FontSize" Value="22"></Setter>
<Setter Property="Foreground" Value="Red"></Setter>
<Setter Property="Background" Value="#C5C5C6"></Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="false">
<Setter Property="FontSize" Value="16"></Setter>
<Setter Property="Foreground" Value="Green"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
XAML代码如下:
<StackPanel Margin="20" Orientation="Horizontal">
<Label Content="─" Width="40" Height="40" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Style="{StaticResource myLable}" Name="lb_MiniSize" MouseUp="Lb_MiniSize_MouseUp"></Label>
<Label Content="☐" Width="40" Height="40" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Style="{StaticResource myLable}" Name="lb_MaxSize" MouseUp="Lb_MaxSize_MouseUp"></Label>
<Label Content="✕" Width="40" Height="40" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Style="{StaticResource myLable}" Name="lb_Close" MouseUp="Lb_Close_MouseUp"></Label>
</StackPanel>
窗体后台代码:
private void Lb_Close_MouseUp(object sender, MouseButtonEventArgs e)
{
this.Close();
}
private void Lb_MiniSize_MouseUp(object sender, MouseButtonEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
private void Lb_MaxSize_MouseUp(object sender, MouseButtonEventArgs e)
{
if(this.WindowState == WindowState.Normal)
this.WindowState = WindowState.Maximized;
else
this.WindowState = WindowState.Normal;
}