我有一个Grid控件,附加了一些操作侦听器,我希望这个侦听器对操作做出反应,即使上面有其他控件
<Grid ManipulationDelta="sliderTouch" ManipulationCompleted="sliderEnd" ManipulationStarted="sliderStart" IsManipulationEnabled="True" x:Name="marcoPannelGrid" Grid.Column="1" HorizontalAlignment="Center" Height="548" Margin="50,0" Grid.Row="5" VerticalAlignment="Top" Width="980" Grid.RowSpan="2" RenderTransformOrigin="0.5,0.5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="27*"/>
<ColumnDefinition Width="525*"/>...
和执行操作的代码
if (e.CumulativeManipulation.Translation.X > MOVEMENT_THRESH)
{
marcoTouch = false;
e.Complete();
//doing animations
}
答案 0 :(得分:0)
如果控件不在接触操作的其他东西后面,则控件不能对触摸作出反应 - 这会导致操纵其他控件的模糊行为。但是,如果你说的是你的网格在嵌套在控件中时没有接收到事件,你有时必须在WPF中设置Background="Transparent"
属性才能接收操作。
答案 1 :(得分:0)
如果它上面的控件不需要任何交互性(即他们不需要响应click或mousedown事件),那么你总是可以设置他们的'IsHitTestVisible&#39;属性为False,从而使它们透明(就命中测试而言)。