D23_05_改变形状窗口的尺寸(自定义窗体大小改变)
2014-11-02 14:17
501 查看
<Window x:Class="demo.ModernWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ModernWindow" Height="300" Width="300" AllowsTransparency="True" WindowStyle="None" ResizeMode="CanResizeWithGrip" Background="Transparent"> <Border Width="Auto" Height="Auto" Name="windowFrame" BorderBrush="#395984" BorderThickness="1" CornerRadius="0,20,30,40" > <Border.Background> <LinearGradientBrush > <GradientBrush.GradientStops> <GradientStopCollection> <GradientStop Color="#E7EBF7" Offset="0.0"/> <GradientStop Color="#CEE3FF" Offset="0.5"/> </GradientStopCollection> </GradientBrush.GradientStops> </LinearGradientBrush> </Border.Background> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <TextBlock Text="Title Bar" Margin="1" Padding="5" MouseLeftButtonDown="titleBar_MouseLeftButtonDown"></TextBlock> <Grid Background="#B5CBEF" Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" FontSize="20">Content Goes Here</TextBlock> <Button VerticalAlignment="Top" HorizontalAlignment="Center" Padding="10" Grid.Row="1" Click="cmdClose_Click">Close</Button> </Grid> <TextBlock HorizontalAlignment="Center" Grid.Row="2" Text="Footer" Margin="1,10,1,1" Padding="5"></TextBlock> <Rectangle Grid.RowSpan="3" Cursor="SizeWE" Fill="Transparent" Width="5" VerticalAlignment="Stretch" HorizontalAlignment="Right" MouseLeftButtonDown="window_initateWiden" MouseLeftButtonUp="window_endWiden" MouseMove="window_Widen"> </Rectangle> </Grid> </Border> </Window>
ModernWindow
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace demo { /// <summary> /// ModernWindow.xaml 的交互逻辑 /// </summary> public partial class ModernWindow : Window { public ModernWindow() { InitializeComponent(); } bool isWiden = false; private void window_initateWiden(object sender, System.Windows.Input.MouseEventArgs e) { isWiden = true; } private void window_Widen(object sender,System.Windows.Input.MouseEventArgs e) { Rectangle rect=(Rectangle)sender; if(isWiden) { rect.CaptureMouse(); double newWidth = e.GetPosition(this).X + 5; if (newWidth > 0) this.Width = newWidth; } } private void window_endWiden(object sender,System.Windows.Input.MouseEventArgs e) { isWiden=false; Rectangle rect=(Rectangle)sender; rect.ReleaseMouseCapture(); } private void cmdClose_Click(object sender,RoutedEventArgs e) { this.Close(); } private void titleBar_MouseLeftButtonDown(object sender,MouseButtonEventArgs e) { this.DragMove(); } } }
相关文章推荐
- D23_04_具有形状内容的透明窗口(自定义窗体)
- [Win32]只允许最大化最小化窗口,禁止双击标题栏、拖动窗体、点击复原按钮来改变窗口大小
- D23_03_非矩形窗口 (自定义窗体)
- C# 改变无边框窗体的尺寸大小
- Ext3.2.2 表格随窗口改变动态适应窗体大小
- 怎样让外界无法改变自定义view的尺寸大小
- Android 自定义RelativeLayout活动主窗口大小改变 得到软键盘的显示和隐藏
- WPF自定义窗体改变大小
- 使用OpenGL绘制一个矩形,并在窗口大小改变时保持它的形状
- iPhone手机解锁效果&&自定义滚动条&&拖拽--Clone&&窗口拖拽(改变大小/最小化/最大化/还原/关闭)
- OpenGL绘制一个矩形,并在窗口大小改变时保持它的形状
- [WPF]自由配置窗体最大化、最小化按钮是否可用,窗口大小不可改变
- C# 改变无边框窗体尺寸大小的方法
- winform 无边框窗口 可改变窗体大小
- C# 改变无边框窗体尺寸大小的方法
- QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent。
- java中 实现无标题无边框的窗体能够用鼠标拖动改变窗口大小
- PB 怎么动态(用代码)改变数据窗口的属性(例如窗体的字体大小,字体颜色,背景颜色)
- opengl中如何使窗口大小改变时,图形的形状不发生变化?
- 实现浏览器兼容的漂浮窗体拖动/改变尺寸的技术要点