gpt4 book ai didi

wpf - 为什么我不能粘贴从 WPF FlowDocumentScrollViewer 或 Reader 复制的文本?

转载 作者:行者123 更新时间:2023-12-04 15:36:49 26 4
gpt4 key购买 nike

previous question我试图找出如何将 ObservableCollection 绑定(bind)到控件,以便我可以看到所有字符串并选择所有字符串并从内容控件中复制它们。通过使用以下 XAML,该问题的答案最终让我得到了我想要的外观(以及看似行为)。 (我尝试了 FlowDocumentReader 和 FlowDocumentScrollViewer - 它们的行为相同。)

<Grid>
<FlowDocumentScrollViewer>
<FlowDocument >
<Paragraph>
<ItemsControl ItemsSource="{Binding ErrorMessages, Mode=OneWay}" />
<Run Text="{Binding /, Mode=OneWay}" />
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Grid>

错误消息 是我的 ViewModel 属性,它返回 ObservableCollection<字符串> .它正确绑定(bind)到 元素来源 <运行> 元素绑定(bind)到集合中的每个字符串。看起来不错,可以用很久。这是如此接近我将我的最后一个问题标记为已回答,但我仍然有一个问题。

我右键单击并显示一个带有“全选”和“复制”选项的菜单。使用全选,确实突出了所有文本,选择复制没有错误,但是当我转到记事本(或 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> element binds to each string in the collection.



如果有的话,它只应该绑定(bind)到当前元素。

无论如何,如果您只有 ItemsControl,那么您的文档实际上根本不包含任何文本。为什么?因为文档中的任何 UIElements 都会自动包装在 BlockUIContainer 中。或 InlineUIContainer 并且不再被视为文本。

一般来说,内容被复制为 XAML、RTF、UnicodeText 和文本(我可以观察到这些,但可能还有其他格式),您可以尝试放置一些 Runs在您的文档中,应正确复制其文本和 Clipboard.GetText()应该返回他们的内容。

关于wpf - 为什么我不能粘贴从 WPF FlowDocumentScrollViewer 或 Reader 复制的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com