即使上面有其他控件,wpf控制也会听操作

时间:2014-10-03 19:53:01

标签: c# .net wpf

我有一个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

            }

2 个答案:

答案 0 :(得分:0)

如果控件不在接触操作的其他东西后面,则控件不能对触摸作出反应 - 这会导致操纵其他控件的模糊行为。但是,如果你说的是你的网格在嵌套在控件中时没有接收到事件,你有时必须在WPF中设置Background="Transparent"属性才能接收操作。

答案 1 :(得分:0)

如果它上面的控件不需要任何交互性(即他们不需要响应click或mousedown事件),那么你总是可以设置他们的'IsHitTestVisible&#39;属性为False,从而使它们透明(就命中测试而言)。