想问一下,因为以前从未在 TextBlock 上这样做过。我无法复制 DataGridTemplateColumn 的内容,其中有一个 TextBlock,并且我已为其分配了一个上下文菜单。
复制的内容是空白的。
当我在 MS Word 中尝试时,它是空白单元格。
我的模板列和上下文菜单如下。
我尝试使用文本框,但它在启用文本框并且尽管网格列是只读的情况下工作。它允许编辑,当我们禁用它时,它不会复制文本。
<DataGridTemplateColumn Header="Details" Width="*" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding details}" TextWrapping="Wrap">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy" Command="Copy"></MenuItem>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
为什么复制的内容是空字符串是因为 TextBlock 不支持复制、剪切和粘贴等命令TextBox。因此,如果使用 TextBlock,则需要手动支持这些命令,但可以使用 TextBox 来支持复制命令,该命令可以充当 TextBlock。请检查以下内容。
<TextBox Background="Transparent" BorderThickness="0" Text="{Binding details}" IsReadOnly="True" TextWrapping="Wrap">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy" Command="Copy"></MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
[更新]
首先,下面的代码能正确执行吗?
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox Background="Transparent" BorderThickness="0" Text="test" IsReadOnly="True" TextWrapping="Wrap">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy" Command="Copy"></MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
</Grid>
</Window>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)