Ner*_*roS 3 .net c# wpf draggable
我在为表单制作自定义标题栏时遇到问题.它将包含一个搜索文本框以及一些滑块,如下图所示:
现在,想象一下作为标题栏 - 所有不是控件本身的部分(由边框元素和滑块包围的文本框)都需要可以拖拽以进行拖动.
我试过这个:
<Grid MouseDown="TitleGridMouseDown">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="135"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<Slider Grid.Column="1" Margin="5 15 5 0" Width="100" MouseDown="TitleGridMouseDown"/>
<Slider Grid.Column="2" Margin="5 15 5 0"/>
<Border Grid.Column="3" CornerRadius="10" BorderThickness="1" BorderBrush="White" Width="180" Height="20" Background="White">
<TextBox Background="Transparent" BorderThickness="0" Height="20"/>
</Border>
</Grid>
Run Code Online (Sandbox Code Playgroud)
但是没有用.两个滑块之间有一小部分,就像几个像素区域一样,实际上可以工作(DragMove();在事件本身中).我在WPF中没有太多经验这种类型的东西,但我觉得这个区域缩小到了控制范围.例如,如果我将border对象放入按钮并尝试将事件绑定到按钮,则不会发生任何变化.
我该怎么做呢?
这里的问题是你想要MouseDown在网格元素上捕获事件.由于您的网格没有背景设置,因此默认为null.该MouseDown事件不会被提升.可以想象它正在通过网格而没有实际击中它.Background=Transparent顶部网格上的A 应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |