我有一个包含3行的网格,其中一行包含可以编辑的TextBox。网格位于paretn内部,提供拖动功能以使其能够在画布周围移动。为了实现这一点,我需要将IsHitTestVisible设置为false,以便允许鼠标单击传递给父对象。
问题是,当我这样做时,我无法选择网格中的文本框,即使命中测试可见设置为True;
<Grid Background="{StaticResource NodeBackground}" IsHitTestVisible="True">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<TextBox Text="{Binding Data}" Foreground="White" Background="Transparent" FontFamily="Consolas" FontSize="15" TextAlignment="Center" Grid.Row="1" BorderThickness="0" />
</Grid>
是否可以按行设置命中测试属性,因此如果两个空行中的任何一个被命中,它们将继续将点击传递到父容器,但仍然可以选择文本框在中间一行?
干杯。
答案 0 :(得分:0)
我不确定您的拖放代码,但也许您可以使用触发器,IsHitTestVisible
只有在拖动项目时False
,其余时间才为真
作为旁注,我过去曾遇到过使用WPF内置DragDrop
功能和热门测试的问题。我发现使用MouseEvents更简单,例如跟踪MouseEnter
/ MouseLeave
事件进行拖动