[01]可拖动、可调节大小、自定义按钮风格的无边框WPF程序
2014-11-02 10:38
405 查看
初学WPF,用VS2012写了一个可拖动、可调节大小、自定义按钮风格的无边框程序。
效果如下:
实现过程:
一、拖动、调节大小、无边框主要参考了: http://blog.csdn.net/dlangu0393/article/details/12548731
二、自己主要完成自定义按钮效果。
1. WPF定义按钮风格方法
(1) 添加一个Resource Dictionary文件,如Style.xaml。例如:
(2) 应用风格
在窗体xaml文件中引用资源文件Style.xaml
设置按钮Style属性
(3) 如果要在窗体类中,用代码设置按钮的风格,方法如下
2. 按钮的位置随窗口大小改变
在窗体xaml中的Grid中定义行列,例如设置Grid为两列
将包含了按钮的Grid作为以上Grid的子元素,设置位于第二列
SystemCmdBar的包含了三个按钮。这样,在不设置第一列的宽度的情况下,位于第二列的SystemCmdBar将始终位于窗口右侧。
三、源程序: ase0701.zip
效果如下:
实现过程:
一、拖动、调节大小、无边框主要参考了: 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.png</BitmapImage> <BitmapImage x:Key="bgMinOver">/Images/bg_min_over.png</BitmapImage> <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
相关文章推荐
- WPF 去边框 自定义窗体 拖动窗体大小变化
- DUI程序Demo2(注意拖动程序的边框改变程序界面的大小,OnNcHitTest消息中处理)
- wpf改变默认的窗口边框大小,去掉边框,并且可以拖动大小
- Win32 SDK程序中拖动Thin边框窗口来改变窗口大小
- Android自定义Iphone风格的圆角边框开关按钮
- Qt:无标题栏无边框程序的拖动和改变大小
- Qt 无标题无边框程序的拖动和改变大小
- Qt 无标题无边框程序的拖动和改变大小
- WPF无边框窗口鼠标拖动缩放大小
- Android自定义Iphone风格的圆角边框开关按钮
- Qt 无标题无边框程序的拖动和改变大小
- Win32 SDK程序中拖动Thin边框窗口来改变窗口大小
- pyqt实现自定义窗口拖动大小,到桌面边框自动影藏
- 通过程序自定义按钮皮肤:一个简单的例子。
- [WPF] 自定义按钮样式
- Win32开发First of All:如何在Win32程序中使用XP风格(vista)的按钮?
- 增加自定义按钮风格功能! – 社会化分享按钮
- WPF程序中使用Vista/Win7风格的OpenFolderDialog
- 无边框窗体拖动大小代码
- WPF拖动无边框窗体