2
我在爲表單創建自定義標題欄時遇到了問題。它包含一個搜索文本框以及幾個滑塊,如圖所示: 現在,想象一下,作爲標題欄 - 一切不是控件本身的一部分(被邊框元素包圍的文本框,滑塊)需要可拖放才能拖拽。然而這無濟於事WPF網格中控件的可點擊區域
<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>
:
我已經試過這一點。在兩個滑塊之間有一小部分,就像幾個像素區域,實際上它可以工作(DragMove();事件本身)。 WPF中這種類型的東西我沒有太多經驗,但我覺得這個區域縮小到了控制範圍。例如,如果我將邊框對象放入按鈕並嘗試將事件綁定到按鈕,則沒有任何更改。
我該如何解決這個問題?
你有沒有嘗試在'Grid'上使用'PreviewMouseDown'? – 2013-05-14 01:01:22
好吧PreviewMouseDown實際上開始工作。不過,它似乎有禁用鼠標點擊和拖動底層元素的功能的明顯副作用...即我不能單擊文本框或拖動滑塊,因爲它只是拖動窗口...嗯.. – NeroS 2013-05-14 01:59:13
正確的我設法通過一些破解來解決這個問題。我在網格中的同一個單元格中放置了一個矩形,給它透明填充,然後將mousedown事件附加到它。我不確定它是否有任何負面影響,它肯定感覺像是黑客,但是......它奇怪地完美無瑕地工作。 – NeroS 2013-05-14 06:57:52