UWP 应用程序的连续体
Continuum for UWP application
我对 UWP 应用程序上的 Continuum 有一些疑问。
我怎么知道 Continuum 连接到我的 Windows Phone?现在我检查它是 DeviceType.Mobile
和 UserInteractionMode
鼠标。
如何在 Continuum 中单击鼠标右键以显示弹出窗口?例如,我在 Microsoft Application.
中看到了这个
假设您正在使用TextBox控件,默认情况下,如果您在桌面上使用TextBox控件,它会显示一个ContextMenu并在我们右键单击TextBox时触发ContextMenuOpening事件,但如果我们使用Mobile 中的 TextBox 控件,当我们右键单击 TextBox 时,不会显示 ContextMenu,也不会触发 ContextMenuOpening 事件。因为 "Paste" 之类的上下文菜单将显示在屏幕键盘上。
如果您想在使用 Continuum 时显示上下文菜单,您有两个解决方法。
一种解决方法是单击物理键盘中的 "Shift+F10",之后应显示 ContextMenu 并触发 ContextMenuOpening 事件。
其他解决方法是处理 TextBox 的 DoubleTapped 事件并在事件中显示一个新的 Flyout,如下所示:
在MainPage.xaml中:
<TextBox Height="50" DoubleTapped="TextBox_DoubleTapped">
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Name="EditButton" Text="Some Command" />
<MenuFlyoutItem x:Name="DeleteButton" Text="Some Command" />
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</TextBox>
在MainPage.xaml.cs:
private void TextBox_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
FrameworkElement senderElement = sender as FrameworkElement;
FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);
flyoutBase.ShowAt(senderElement);
}
我对 UWP 应用程序上的 Continuum 有一些疑问。
我怎么知道 Continuum 连接到我的 Windows Phone?现在我检查它是
DeviceType.Mobile
和UserInteractionMode
鼠标。如何在 Continuum 中单击鼠标右键以显示弹出窗口?例如,我在 Microsoft Application.
中看到了这个
假设您正在使用TextBox控件,默认情况下,如果您在桌面上使用TextBox控件,它会显示一个ContextMenu并在我们右键单击TextBox时触发ContextMenuOpening事件,但如果我们使用Mobile 中的 TextBox 控件,当我们右键单击 TextBox 时,不会显示 ContextMenu,也不会触发 ContextMenuOpening 事件。因为 "Paste" 之类的上下文菜单将显示在屏幕键盘上。
如果您想在使用 Continuum 时显示上下文菜单,您有两个解决方法。 一种解决方法是单击物理键盘中的 "Shift+F10",之后应显示 ContextMenu 并触发 ContextMenuOpening 事件。 其他解决方法是处理 TextBox 的 DoubleTapped 事件并在事件中显示一个新的 Flyout,如下所示:
在MainPage.xaml中:
<TextBox Height="50" DoubleTapped="TextBox_DoubleTapped">
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Name="EditButton" Text="Some Command" />
<MenuFlyoutItem x:Name="DeleteButton" Text="Some Command" />
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</TextBox>
在MainPage.xaml.cs:
private void TextBox_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
FrameworkElement senderElement = sender as FrameworkElement;
FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);
flyoutBase.ShowAt(senderElement);
}