我正在设计一个应用程序,我正在尝试从文件中放入字符串并尝试将其放入我的richtextbox
但他们是一个问题,那就是
xaml文件代码
<Menu Header="File">
<MenuItem Header="_Open..." Name="open" InputGestureText="Ctrl+O" Click="open_click">
<MenuItem.Icon>
<Image Source="open-icon.png" Width="25" Height="25"></Image>
</MenuItem.Icon>
</MenuItem>
</Menu>
<RichTextBox x:Name="richTextBox" Height="290" Width="508" AcceptsReturn="True" AcceptsTab="True">
<FlowDocument>
<Paragraph>
<Run Name="test" Text=""/>
</Paragraph>
</FlowDocument>
</RichTextBox>
cs文件代码
private void open_click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog o = new Microsoft.Win32.OpenFileDialog();
RichTextBox richtextbox = new RichTextBox();
o.InitialDirectory = "c:\\";
o.Filter = "Text Files|*.txt";//working method// Filter = "Text files (*.txt)|*.txt|All Files (*.*)|*.*";
o.RestoreDirectory = true;
if (o.ShowDialog() == DialogResult.ok)
richtextbox1.LoadFile(o.FileName,FrameworkRichTextComposition.PlainText);
}
错误出现在if行语句和下划线对象是“DialogResult.OK” 表示“DialogResult.OK”是下划线 和loadFile也是下划线
我认为我在xaml文件中遗漏了某些内容,或者我在代码中遗漏了其他内容
第二张错误图片
答案 0 :(得分:1)
Window.ShowDialog()
返回bool?
。您尝试与之比较的DialogResult
是父窗口的属性,您不应该与它进行比较。我认为您可能会将MessageBoxResult
与MessageBox.Show()
混淆,后者由MessageBoxResult.OK
返回。 ShowDialog()
是一件事,但这是另一回事。
以下是if (o.ShowDialog().GetValueOrDefault())
richtextbox1.LoadFile(o.FileName,FrameworkRichTextComposition.PlainText);
的所需内容:
if ((bool)o.ShowDialog())
richtextbox1.LoadFile(o.FileName,FrameworkRichTextComposition.PlainText);
或者这个:
LoadFile
第二个问题是WPF RichTextBox控件没有hold on
方法,与winforms版本不同。 This answer illustrates how to load a rich text file into a WPF RichTextBox。