SL 4 は MessageBox によるダイアログ ボックスを提供しますが、MessageBoxButton は OK、Cancel などのボタンのオプションのみを提供します。YES、NOボタンに変更するには?
質問する
4110 次
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 に答える