我正在WPF
(c#)中编写程序。我住在伊朗所以我的语言是波斯语(right to left
)。我想使用更多按钮或其他控件制作自定义MessageBox
。
我使用简单的Window
来显示消息。在MessageBox显示的C#中,用户无法单击或对其他窗口执行任何操作。我怎能在窗口simulate
这个?
在上一篇文章中,我使用了WPFCustomeMessageBox库。请不要把它转介给我。
答案 0 :(得分:3)
答案 1 :(得分:1)
使用Window.Showdialog并且不要忘记设置Window Parent,否则你会得到有趣的行为。
然后在Window类中具有预期返回的属性,这些属性由对话框的结果填充。 像:
public void testDialog()
{
var return = new DialogModelReturn();
mywindow.ShowDialog(new DialogModel(return));
if (return.isOk)
{
}
}
这种思路应该有所作为。 另外:我建议将WindowStyle设置为none,或者至少只设置一个关闭Button,以获得“ModalDialog感觉”。
像这样:
<Window x:Class="bla.bla"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Fortschritt" Icon="bla.png" Height="200" Width="600"
WindowStyle="None" Background="RoyalBlue">
答案 2 :(得分:1)
编辑:我似乎没有仔细阅读这个问题,并认为问题是无法在MessageBoxes中使用从右到左对齐(这可以通过MessageBoxOptions)。
MessageBox.Show()
方法存在重载,允许您指定MessageBoxOptions
。其中一些选项涉及从右到左的对齐。
我不知道伊朗使用的语言,所以你必须尝试使用自己的文本,但这里是如何指定选项(方法的最后一个参数):
string message = "Test message.";
string caption = "RTL Test";
MessageBoxImage image = MessageBoxImage.Information;
MessageBoxButton button = MessageBoxButton.OK;
MessageBoxResult defaultResult = MessageBoxResult.OK;
MessageBox.Show(message, caption, button, image, defaultResult, MessageBoxOptions.RightAlign);
MessageBox.Show(message, caption, button, image, defaultResult, MessageBoxOptions.RtlReading);
MessageBox.Show(message, caption, button, image, defaultResult, MessageBoxOptions.RtlReading | MessageBoxOptions.RightAlign);
以下是有关选项的MSDN文章的链接:MessageBoxOptions Enum (Winforms)