是否可以隐藏底部的控件,如FlowDocumentReader中的缩放滑块,页面导航等?似乎只能通过IsFindEnabled属性隐藏搜索.
在上一个问题中,我试图找出如何将ObservableCollection绑定到控件,这样我就可以看到所有字符串并选择所有字符串并从内容控件中复制它们.这个问题的答案最终通过使用以下XAML得到了我想要的外观(看似行为).(我尝试了FlowDocumentReader和FlowDocumentScrollViewer - 它们的行为相同.)
<Grid>
<FlowDocumentScrollViewer>
<FlowDocument >
<Paragraph>
<ItemsControl ItemsSource="{Binding ErrorMessages, Mode=OneWay}" />
<Run Text="{Binding /, Mode=OneWay}" />
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)
ErrorMessages是我的ViewModel属性,它返回一个ObservableCollection <string>.它正确绑定到ItemsSource,<Run>元素绑定到集合中的每个字符串.看起来不错,持续很长时间.这是如此接近我标记我的最后一个问题,但我仍有一个问题.
我右键单击,菜单显示" 选择所有"和" 复制"选项.使用全选,确实突出显示所有文本,选择复制问题没有错误,但当我转到NotePad(或Word,或TextPad等或表格上的RTB)并尝试粘贴文本时,没有任何显示.作为WPF的新手,我怀疑我做错了什么,但我不知道它是什么.那里没有"看不见"的文字吗?
[编辑 - 2011年6月22日]由于其他原因,我已经通过ItemsControl中的ItemTemplate更改了代码以使用TextBlock,如下所示,但我仍然无法复制和粘贴.
<DataTemplate x:Key="StringCollection">
<TextBlock TextWrapping="Wrap" Text="{Binding}" TextAlignment="Left"/>
</DataTemplate>
<!--... now down in the ItemsControl-->
<ItemsControl ItemsSource="{Binding ReceivedData, Mode=OneWay}"
ItemTemplate="{StaticResource StringCollection}" />
Run Code Online (Sandbox Code Playgroud) wpf copy-paste flowdocument flowdocumentscrollviewer flowdocumentreader
FlowDocumentReader在其ContextMenu,Copy和Select All中有两个菜单项.我想为它添加一个额外的MenuItem并试过这个:
private void FlowDocumentReader_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
flowDocumentReader.ContextMenu.Items.Clear();
MenuItem menuItem = new MenuItem();
menuItem.Header = "Test";
flowDocumentReader.ContextMenu.Items.Add(menuItem);
}
Run Code Online (Sandbox Code Playgroud)
另外我试过这个:
private void FlowDocumentReader_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
MenuItem menuItem = new MenuItem();
menuItem.Header = "Test";
flowDocumentReader.ContextMenu.Items.Add(menuItem);
}
Run Code Online (Sandbox Code Playgroud)
我不清除上下文菜单中的项目并尝试附加它.这些都不奏效.
我可以像这样创建自己的菜单:
private void FlowDocumentReader_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
MenuItem menuItem = new MenuItem();
menuItem.Header = "Test";
flowDocumentReader.ContextMenu.Items.Add(menuItem);
e.Handled = true;
ContextMenu menu = new ContextMenu();
MenuItem a = new MenuItem();
a.Header = "A";
menu.Items.Add(a);
MenuItem b = new MenuItem();
b.Header = …Run Code Online (Sandbox Code Playgroud)