嗨这是MessageDialog Box。
var messageDialog = new MessageDialog("Search has been found.");
// Show the message dialog
await messageDialog.ShowAsync();
我有这些问题:
由于
答案 0 :(得分:3)
以下是你的答案:
Num 1.你不能将MessageDialog设置为你想要的任何大小,它自身的大小。
Num 2. MessageDialog的标题可以像这样处理:
new Windows.UI.Popups.MessageDialog("Content", "Title");
Num 3.更改messageDialog的按钮是这样的:
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();
Num 4.您无法更改MessageDialog背景,它会自行着色。
顺便说一句,Callisto中有一个完全可自定义的对话框可能很有用,但是更多的工作(也许你按小时支付:)):https://github.com/timheuer/callisto
答案 1 :(得分:2)
您可以使用Popup
,MessageDialog
无效。您需要首先将弹出窗口的UI创建为Usercontrol
,然后将弹出窗口的子项设置为该用户控件。我已经给出了下面的示例。还有一个选项是使用InputDialog
中提供的<UserContol />
。
MyUserControl.xaml(将适当的高度宽度设置为<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>
)
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;
}
MainPage.xaml.cs中
{{1}}
答案 2 :(得分:1)
如果这确实是应用程序的“模态”输入/消息,请不要尝试更改UX设计。 WinRT应用程序中的对话应该与MessageDialog类似。如果您从系统范围转移 - 您正在更改整个系统中一致的模式,除了您的应用程序。
如果您想要的更像是一个非模态对话框,这听起来像您可能想要的......您可以像Jerry建议的那样使用基于Popup创建自己的对话框,或使用像{{3这样的第三方工具包}},它为您提供Flyout基础。