♦ 更换界面的最小化、最大化和关闭图标
1.在窗体的XMAL文件中,将窗体的WindowStyle属性设置为"None";
ShowInTaskBar属性设置窗体最小化时是否现在在任务栏中,设置为True显示在任务栏中,设置为False不显示在任务栏中。
2.在窗体最小化、最大化、关闭的地方添加3个按钮,修改按钮的模板信息,在里面添加<Label></Label>信息,代码类似
<Button x:Name="btn_min" Click="BtnMinClick" Margin="0,-14,32,0" Height="25" VerticalAlignment="Top" d:LayoutOverrides="VerticalAlignment" RenderTransformOrigin="3.789,0.519" HorizontalAlignment="Right" Width="29">
<Button.Template>
<ControlTemplate>
<Label x:Name="tips_Min" MouseEnter="Tips_Min_MouseEnter" MouseLeave="Tips_Min_MouseLeave" Foreground="White" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Cursor="Hand" >
<Label.Background>
<ImageBrush ImageSource="images/min1.png"/>
</Label.Background>
</Label>
</ControlTemplate>
</Button.Template>
</Button>
其中需要导入制作好的按钮图标文件
3.按钮动态效果
这个效果可以通过两种方式实现,一种是后台C#代码实现,另一种是通过XAML的动画效果实现。
C#代码实现,需要添加鼠标进入事件和鼠标离开事件:
鼠标进入事件,
private void Tips_Close_MouseEnter(object sender, MouseEventArgs e)
{
Label labmin = (Label)sender;
try
{
ImageBrush image = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Images/close2.png")));
image.Stretch = Stretch.Fill;
labmin.Background = image;
}
catch (Exception ef)
{
MessageDialog.ShowMessage("error:" + ef.ToString(), this.Top, this.Left, this.Height, this.Width);//MessageDialog为自定义的窗体
}
}
鼠标离开事件,
private void Tips_Close_MouseLeave(object sender, MouseEventArgs e)
{
Label labmin = (Label)sender;
try
{
ImageBrush image = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Images/close1.png")));
image.Stretch = Stretch.Fill;
labmin.Background = image;
}
catch (Exception ef)
{
MessageDialog.ShowMessage("error:" + ef.ToString(), this.Top, this.Left, this.Height, this.Width);
}
}
4.添加鼠标左键按下拖动窗体功能
添加鼠标左键按下事件,在此事件中添加拖动方法
private void LeftKeyClick(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
♦ 界面的圆角矩形
在添加制作桌面应用程序时,希望应用程序的界面周围是圆角类型,这种情况下,就不能实现窗体的最大化后,界面布局中的也随着伸展开来,
窗体的最外层<Window></Window>中使用<Border></Border>,设置Border的属性CornerRadius,修改为