我设计了一个窗口样式=无的WPF表单.所以我看不到表单中的拖动条.如何使用WindowStyle = None属性移动表单?
小智 54
我正在使用一个主窗口来保存页面(创建导航样式程序),在我的主窗口后面的代码中,我插入了这个......
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// Begin dragging the window
this.DragMove();
}
Run Code Online (Sandbox Code Playgroud)
......它就像一个魅力.这是windowstyle = none.它的优点在于您可以点击应用程序的任何位置并移动它而不是仅限于顶部栏.
在我们的应用程序中,我们将Windows的WindowStyle设置为“ none”,我们实现了拖动窗口的功能,但只能从标题而不是从窗口的任何点拖动窗口。为此,我们添加了一个Border作为标题,然后添加了一个Thumb来填充整个Border。然后,我们在Window后面的代码中处理Thumb上的DragDelta方法。
<Border
Name="headerBorder"
Width="Auto"
Height="50"
VerticalAlignment="Top"
CornerRadius="5,5,0,0"
DockPanel.Dock="Top"
Background="{StaticResource BackgroundBrush}"
BorderThickness="1,1,1,1"
BorderBrush="{StaticResource BorderBrush}">
<Grid>
<Thumb
x:Name="headerThumb"
Opacity="0"
Background="{x:Null}"
Foreground="{x:Null}"
DragDelta="headerThumb_DragDelta"/>
</Grid>
</Border>
Run Code Online (Sandbox Code Playgroud)
然后在代码背后,我们有以下事件处理程序...
private void headerThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
Left = Left + e.HorizontalChange;
Top = Top + e.VerticalChange;
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是否比其他方法更好,这只是我们做到的方式。
| 归档时间: |
|
| 查看次数: |
19043 次 |
| 最近记录: |