[01]可拖动、可调节大小、自定义按钮风格的无边框WPF程序

2020-12-13 14:59

阅读:257

标签:style   blog   http   io   color   os   ar   sp   文件   

初学WPF,用VS2012写了一个可拖动、可调节大小、自定义按钮风格的无边框程序。
效果如下:

soscw.com,搜素材

 

实现过程:
一、拖动、调节大小、无边框主要参考了: http://blog.csdn.net/dlangu0393/article/details/12548731

 

二、自己主要完成自定义按钮效果。

    1.  WPF定义按钮风格方法

(1) 添加一个Resource Dictionary文件,如Style.xaml。例如:

ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    BitmapImage x:Key="bgMin">/Images/bg_min.pngBitmapImage>
    BitmapImage x:Key="bgMinOver">/Images/bg_min_over.pngBitmapImage>
    Style x:Key="btnTemplate" TargetType="Button">
        Setter Property="Template">
            Setter.Value>
                ControlTemplate TargetType="{x:Type Button}">
                    Border Background="{TemplateBinding Background}">
                        ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    Border>
                ControlTemplate>
            Setter.Value>
        Setter>
    Style>
    Style x:Key="btnMinStyle" TargetType="Button" BasedOn="{StaticResource btnTemplate}">
        Setter Property="Background">
            Setter.Value>
                ImageBrush ImageSource="{StaticResource bgMin}" Stretch="Fill"/>
            Setter.Value>
        Setter>
        Style.Triggers>
            Trigger Property="IsMouseOver" Value="true">
                Setter Property="Background">
                    Setter.Value>
                        ImageBrush ImageSource="{StaticResource bgMinOver}" Stretch="Fill"/>
                    Setter.Value>
                Setter>
            Trigger>
        Style.Triggers>
    Style>
ResourceDictionary>

(2) 应用风格

在窗体xaml文件中引用资源文件Style.xaml

Window.Resources>
        ResourceDictionary>
            ResourceDictionary.MergedDictionaries>
                ResourceDictionary Source="/Theme/Style.xaml"/>
            ResourceDictionary.MergedDictionaries>
        ResourceDictionary>
Window.Resources>

设置按钮Style属性

Button Style="{StaticResource btnMinStyle}" />

(3) 如果要在窗体类中,用代码设置按钮的风格,方法如下

this.MinimizeButton.Style = (Style)Resources["btnMinStyle"];

 

    2. 按钮的位置随窗口大小改变

在窗体xaml中的Grid中定义行列,例如设置Grid为两列

Grid>
    ...
    Grid.ColumnDefinitions>
                    ColumnDefinition/>
                    ColumnDefinition  Width="93"/>
    Grid.ColumnDefinitions>
    ...
    ...
Grid>

将包含了按钮的Grid作为以上Grid的子元素,设置位于第二列

Grid x:Name="SystemCmdBar"Width="93" Grid.Column="1">...Grid>

SystemCmdBar的包含了三个按钮。这样,在不设置第一列的宽度的情况下,位于第二列的SystemCmdBar将始终位于窗口右侧。

 

三、源程序: ase0701.zip

 

[01]可拖动、可调节大小、自定义按钮风格的无边框WPF程序

标签:style   blog   http   io   color   os   ar   sp   文件   

原文地址:http://www.cnblogs.com/yuzhiyu3/p/4068746.html


评论


亲,登录后才可以留言!