文本块和标签wpf上的文本选择

时间:2016-01-11 14:53:34

标签: c# .net wpf xaml

我有一个表单,其中包括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>

2 个答案:

答案 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属性来查看所选文本的颜色。