我正在尝试在 WPF 中创建一个可以接收触摸事件的浮动控件。我搜索了很多,发现浮动控件的唯一解决方案是 Popup 控件。问题:Popup 控件无法接收触摸事件。而且由于我SurfaceListBox
在弹出窗口中使用了一个,我需要触摸事件。我试图通过以下方式使弹出窗口接收触摸事件:
TouchExtensions.EnableSurfaceInput((HwndSource)HwndSource.FromVisual(this.selectionListPopup));
但它没有任何效果。有没有办法让弹出窗口接收触摸?有没有其他可以使用的控件或方式?
我的最终目标是让一个控件浮动在其他控件之上——这意味着它不会被其他控件剪裁或遮挡。
这是我到目前为止使用的 XAML:
<Popup Name="selectionListPopup"
PlacementTarget="{Binding ElementName=selectedItemButton}"
Placement="Relative"
VerticalOffset="{Binding ElementName=this, Path=SelectionListTop}"
HorizontalOffset="{Binding ElementName=this, Path=SelectionListLeft}"
IsOpen="{Binding ElementName=this, Path=IsSelecting, Mode=TwoWay}"
StaysOpen="False"
AllowsTransparency="True"
Focusable="False">
<s:SurfaceListBox Name="selectionList"
ItemsSource="{Binding ElementName=this, Path=ItemsSource}"
SelectedItem="{Binding ElementName=this, Path=SelectedItem, Mode=TwoWay}"
SelectionChanged="OnSelectionListSelectionChanged">
</s:SurfaceListBox>
</Popup>