1

SL 4 は MessageBox によるダイアログ ボックスを提供しますが、MessageBoxButton は OK、Cancel などのボタンのオプションのみを提供します。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;
        }
    }

独自のポップアップを作成したくない場合は、おそらくサード パーティのメッセージ ボックスがありますが、このソリューションを使用すると、すべてを自分で行うことができます。

于 2012-05-31T15:12:27.717 に答える