嗨,这是消息对话框。
var messageDialog = new MessageDialog("Search has been found.");
// Show the message dialog
await messageDialog.ShowAsync();
我有这些问题:
- 如何使它成为我想要的大小。示例:以 Square Box 大小出现在中心?
- 如何为此 MessageBox 示例添加标题:电影
- 如何让它接受答案是,否或取消
- 可以添加背景颜色吗?
谢谢
嗨,这是消息对话框。
var messageDialog = new MessageDialog("Search has been found.");
// Show the message dialog
await messageDialog.ShowAsync();
我有这些问题:
谢谢
以下是您的答案:
数字 1. 您不能将 MessageDialog 设置为任何您想要的大小,它会自行调整大小。
Num 2. MessageDialog 的标题可以这样处理:
new Windows.UI.Popups.MessageDialog("Content", "Title");
数字 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
可以用Popup
,MessageDialog
不行。您需要首先将弹出窗口的 UI 创建为Usercontrol
,然后将弹出窗口的子级设置为该用户控件。我已经给出了下面的示例。另一种选择是使用WinRT XAML ToolkitInputDialog
中提供的 .
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>
MainPage.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;
}
如果这确实是应用程序的“模态”输入/消息,请不要尝试更改 UX 设计。WinRT 应用程序中的对话框应该类似于 MessageDialog。如果您从系统范围内转移,您正在更改整个系统一致的模式,除了您的应用程序。
如果您想要更多的是非模态对话框,这听起来像您可能想要的......您可以使用,如 Jerry 建议的那样,基于 Popup 创建您自己的,或者使用像Callisto这样的 3rd 方工具包,它提供了 Flyout为您提供基础。