WPF 自适应标题栏实现 - 轻松拖动窗口
WPF 自定义标题栏实现自适应拖动可以通过以下步骤实现:
-
在 XAML 中定义一个自定义的标题栏控件,包含一个文字标签和一个拖动区域。
```xml <UserControl x:Class="CustomTitleBar.TitleBarControl" ... > <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Text="{Binding Title}" VerticalAlignment="Center" Margin="10" /> <Rectangle Fill="Transparent" Grid.Column="1" Width="20" Height="20" Margin="5" MouseLeftButtonDown="Rectangle_MouseLeftButtonDown" /> </Grid> </UserControl> ``` -
在标题栏控件的代码中,实现鼠标按下事件处理程序,用于开始拖动窗口。
```csharp public partial class TitleBarControl : UserControl { public string Title { get; set; } public TitleBarControl() { InitializeComponent(); } private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var window = Window.GetWindow(this); window?.DragMove(); } } ``` -
在窗口的 XAML 中,使用自定义的标题栏控件,并设置窗口的样式为 None,以隐藏系统默认的标题栏。
```xml <Window x:Class="CustomTitleBar.MainWindow" ... WindowStyle="None"> <Grid> <local:TitleBarControl Title="Custom Title Bar" /> <TextBlock Text="Hello, world!" Margin="10" /> </Grid> </Window> ```
这样,就可以实现一个自适应的 WPF 自定义标题栏,并且可以通过拖动标题栏来拖动整个窗口。
原文地址: https://www.cveoy.top/t/topic/mQPm 著作权归作者所有。请勿转载和采集!