如何使MessageDialog Box位于中心
本文关键字:于中心 Box MessageDialog 何使 | 更新日期: 2023-09-27 18:25:16
嗨,这是消息对话框。
var messageDialog = new MessageDialog("Search has been found.");
// Show the message dialog
await messageDialog.ShowAsync();
我有以下问题:
- 如何把它做成我想要的尺寸。示例:是否以方形方框大小显示在中心
- 如何为此MessageBox添加标题示例:电影
- 如何获取答案是、否或取消
- 可以添加背景色吗
感谢
以下是您的答案:
数字1。您不能将MessageDialog设置为所需的任何大小,它会自行调整大小。
数字2。MessageDialog的标题可以这样处理:
new Windows.UI.Popups.MessageDialog("Content", "Title");
数字3。更改消息对话框的按钮如下:
var dialog = new Windows.UI.Popups.MessageDialog("Content", "Title");
dialog.Commands.Add(new UICommand("yes", (s) => { /* TODO: */}));
dialog.Commands.Add(new UICommand("no", (s) => { /* TODO: */}));
dialog.Commands.Add(new UICommand("cancel"));
await dialog.ShowAsync();
数字4。无法更改MessageDialog的背景,它会自行着色。
顺便说一句,木卫四中有一个完全可定制的对话框,可能很有用,但需要做更多的工作(也许你是按小时付费的:):https://github.com/timheuer/callisto
您可以使用Popup
,MessageDialog
将不起作用。您需要首先将弹出窗口的UI创建为Usercontrol
,然后将弹出窗口中的子控件设置为该用户控件。我给了下面的样品。还有一个选项是使用InputDialog
,它在WinRT XAML Toolkit中可用。
MyUserControl.xaml(将适当的高度宽度设置为<UserContol />
)
<Grid Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="21*" />
<RowDefinition Height="16*" />
<RowDefinition Height="63*" />
</Grid.RowDefinitions>
<TextBlock Text="Movies" FontSize="30" Margin="20,20,0,0"/>
<TextBlock Text="Search has been found." FontSize="15" Grid.Row="1" Margin="20,20,0,0"/>
<StackPanel Orientation="Horizontal" Grid.Row="2" Margin="20,0,0,0">
<Button Content="Yes" />
<Button Content="No" />
<Button Content="Cancel" />
</StackPanel>
</Grid>
主页.xaml.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Popup p = new Popup();
p.Child = new MyUserControl();
p.IsOpen = true;
p.HorizontalOffset = (Window.Current.Bounds.Width - ((MyUserControl)(p.Child)).Width) / 2;
p.VerticalOffset = (Window.Current.Bounds.Height - ((MyUserControl)(p.Child)).Height) / 2;
}
如果这真的是应用程序的"模态"输入/消息,不要试图改变用户体验设计。WinRT应用程序中的对话框应该类似于MessageDialog。如果你偏离了这一点——这是全系统的——你正在改变一个在整个系统中一致的模式,除了你的应用程序。
如果你想要的更多的是一个非模态对话框,听起来你可能想要。。。正如Jerry建议的那样,您可以使用基于Popup创建自己的工具包,或者使用像Callisto这样的第三方工具包,它为您提供了Flyout基础。