use*_*206 1 c# xaml win-universal-app windows-10-universal
我创建了一个ContentDialog套用样式(我不能用一个消息对话框,然后弹出的应用),但我有它的问题,它是不可移动的或我不能关闭它像出现的框,当我单击Groove应用程序中的"Connexion"按钮

请你有任何想法,我可以在ContentDialog样式中修改哪一部分,以使这个ContentDialog可以移动并关闭它像顶部的图像
我在一个通用应用程序上工作
请问你有什么想法,我可以在ContentDialog样式中修改哪一部分来使这个ContentDialog可以移动并像顶部的图像一样关闭它.
我担心ContentDialog不可移动,你在Groove应用程序或系统的邮件应用程序中显示的图像不是ContentDialog,实际上,这个"对话框"由UserDataAccountManager.ShowAddAccountAsync调用.如果我们使用ProcessMonitor跟踪此UI,我们会发现这是一个系统应用程序C:\ Windows\SystemApps\Microsoft.AccountsControl_cw5n1h2txyewy.您可以在SO:UWP模态窗口中看到类似问题中的图片和信息.
对于你的问题,我们无法启动像Microsoft.AccountsControl这样的系统应用程序获取结果,我们只能使用API调用它UserDataAccountManager.ShowAddAccountAsync.但是你可以创建一个UWP应用程序,并为另一个应用程序的结果启动此应用程序,为此,请参阅启动应用程序获取结果.
或者,如果你只想要一个可移动的UI,你可以在你的应用程序中创建一个新窗口,并改变这个新窗口的大小,让它像一个弹出行为ContentDialog,但这个新窗口将显示你的应用程序的标题,无法删除.
如何创建新窗口?例如:
private async void OnClick(object sender, RoutedEventArgs e)
{
var newCoreAppView = CoreApplication.CreateNewView();
var appView = ApplicationView.GetForCurrentView();
await newCoreAppView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, async () =>
{
var window = Window.Current;
var newAppView = ApplicationView.GetForCurrentView();
var frame = new Frame();
window.Content = frame;
frame.Navigate(typeof(BlankPage));
window.Activate();
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, appView.Id, ViewSizePreference.Default);
});
}
Run Code Online (Sandbox Code Playgroud)
以及如何更改新窗口的大小?例如,在新窗口中显示的页面的cs文件中:
public BlankPage()
{
this.InitializeComponent();
this.Loaded += Page_Loaded;
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
var s = ApplicationView.GetForCurrentView();
s.TryResizeView(new Size { Width = 600, Height = 320 });
}
Run Code Online (Sandbox Code Playgroud)
这将形成600宽度和320高度的窗口.
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |