2

嗨,这是消息对话框。

var messageDialog = new MessageDialog("Search has been found.");
// Show the message dialog
await messageDialog.ShowAsync();

我有这些问题:

  1. 如何使它成为我想要的大小。示例:以 Square Box 大小出现在中心?
  2. 如何为此 MessageBox 示例添加标题:电影
  3. 如何让它接受答案是,否或取消
  4. 可以添加背景颜色吗?

谢谢

4

3 回答 3

3

以下是您的答案:

数字 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

于 2013-07-29T22:00:10.663 回答
2

可以用PopupMessageDialog不行。您需要首先将弹出窗口的 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;
}
于 2013-07-28T13:52:13.380 回答
1

如果这确实是应用程序的“模态”输入/消息,请不要尝试更改 UX 设计。WinRT 应用程序中的对话框应该类似于 MessageDialog。如果您从系统范围内转移,您正在更改整个系统一致的模式,除了您的应用程序。

如果您想要更多的是非模态对话框,这听起来像您可能想要的......您可以使用,如 Jerry 建议的那样,基于 Popup 创建您自己的,或者使用像Callisto这样的 3rd 方工具包,它提供了 Flyout为您提供基础。

于 2013-08-02T15:40:56.987 回答