首页 > 代码库 > WPF 界面定制

WPF 界面定制

♦ 更换界面的最小化、最大化和关闭图标

     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,修改为

WPF 界面定制