1

SL 4 通过 MessageBox 提供了一个对话框,但 MessageBoxButton 只提供了按钮的选项,如确定、取消。如何将其更改为 YES、NO 按钮?

4

2 回答 2

1

Silverlight 中内置的这个 MessageBox 不能在公开的功能之外进行更改。

您唯一的解决方案是制作一个自定义 ChildWindow 类,它提供您想要的功能。这方面例子很多

这具有更像其他silverlight弹出窗口的优点,并且可以根据您的喜好设置主题和皮肤,无论您选择实现什么按钮和功能。

这样做的缺点是您被迫使用回调模型而不是更常见的命令式流控制。

于 2012-05-31T15:11:53.610 回答
0

你最好的选择是使用System.Windows.Controls.Primitives.Popup

<Grid x:Name="LayoutRoot" Background="White">
    <Button x:Name="showPopup"  Click="showPopup_Click" Height="100" Width="100" Content="Show Popup"/>
    <Popup x:Name="myPopup" IsOpen="False" VerticalAlignment="Top" HorizontalAlignment="Center" >
        <Canvas  Height="200" Width="300" Background="Azure">
            <Button x:Name="closePopup" Click="closePopup_Click" Height="50" Width="100" Content="Close Popup"/>
        </Canvas>
    </Popup>
    <Canvas x:Name="myCanvas" Visibility="Collapsed" Background="Black"  Opacity=".4"></Canvas>
</Grid>

public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
        }

        private void closePopup_Click(object sender, RoutedEventArgs e)
        {
            myPopup.IsOpen = false;
            myCanvas.Visibility = Visibility.Collapsed;
        }

        private void showPopup_Click(object sender, RoutedEventArgs e)
        {
            myPopup.IsOpen = true;
            myCanvas.Visibility = Visibility.Visible;
        }
    }

如果您不想创建自己的弹出窗口,则可能有 3rd 方消息框,但使用此解决方案,您可以掌控一切。

于 2012-05-31T15:12:27.717 回答