wpf控件监听操纵,即使上面还有其他控件

本文关键字:控件 其他 监听 操纵 wpf | 更新日期: 2023-09-27 18:25:26

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

wpf控件监听操纵,即使上面还有其他控件

如果控件位于接收操作的其他对象后面,则控件无法对触摸做出反应-这将导致对其他控件的操作出现模糊行为。但是,如果您所说的网格在嵌套在控件中时不接收事件,则有时必须在WPF中设置Background="Transparent"属性才能接收操作。

如果上面的控件不需要任何交互(即它们不需要响应点击或鼠标按下事件),那么您可以始终将它们的"IsHitTestVisible"属性设置为False,从而使它们透明(就命中测试而言)。