我有一个表单,其中包括TextBlocks,Lables,Borders。我希望能够用鼠标选择文本,就像MS Word或HTML表格中的某些文本一样。我不能使用TextBox或RichTextBox。有没有办法实现我的目标?
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="1">
<StackPanel Orientation="Horizontal">
<TextBlock Text="some text in TextBlock" VerticalAlignment="Center"/>
<Label Content="another text in Label"/>
</StackPanel>
</Border>
<Border Grid.Row="1" BorderBrush="Black" BorderThickness="1">
<StackPanel Orientation="Horizontal">
<TextBlock Text="one more in TextBlock" VerticalAlignment="Center"/>
<Label Content="one more text in Label"/>
</StackPanel>
</Border>
答案 0 :(得分:0)
使用TextBox而不是TextBlock,如下面的代码:
<TextBox
Background="Transparent"
TextWrapping="Wrap"
Text="{Binding Desired, Mode=OneWay}"
IsReadOnly="True"
BorderThickness="0"/>
为了使其更清晰,请为TextBlock设计一个模板并使用其中的前一个TextBox。
答案 1 :(得分:-2)
你可以这样做:
<TextBlock Text="test2"
FontSize="16"
IsTextSelectionEnabled="true"
SelectionHighlightColor="Green"
x:Name="test"
Foreground="Black"
TextWrapping="Wrap"
TextAlignment="Left"/>
只需将IsTextSelectionEnabled
设为true即可。
您还可以通过更改SelectionHighlightColor
属性来查看所选文本的颜色。