2012-10-04 5 views
10

可能性の重複コピーすることができますので、どのように私が選択としてのTextBlockを行うことができます。
Any way to make a WPF textblock selectable?そのユーザがそのテキスト

をユーザーがコピーできるように、私は、WPFアプリケーションでのTextBlock選択を行うことができますそれ。

ありがとうございます。

DJ

+0

ああ、ジェイリッグスは正しい...私は再イテレートする前に検討しておくべきだった。 +1 –

+0

質問は、提供されたリンクから20以上の票を投じた誤った回答によっては答えられません。私はこの質問を再開することにしました。一歳以上というのは意味がありません。 –

+0

私はより良い解決策を見つけました。ここで私の答えを確認してください:https://stackoverflow.com/a/45627524/332528 – torvin

答えて

11

あなただけのだけの種類の好きな、TextBlockのように見えただけ読んだのTextBoxにそれを作ることができます。

<Style x:Key="ReadOnlyTextBox" TargetType="TextBox"> 
    <Setter Property="IsReadOnly" Value="True" /> 
    <Setter Property="Padding" Value="5"/> 
    <Setter Property="Margin" Value="0"/> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="BorderBrush" Value="Transparent"/> 
    <Setter Property="BorderThickness" Value="0"/> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/> 
    <Setter Property="VerticalScrollBarVisibility" Value="Disabled"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
     <ControlTemplate TargetType="TextBox"> 
      <Grid x:Name="RootElement"> 
       <ScrollViewer x:Name="ContentElement" 
          Margin="{TemplateBinding Margin}" 
          Background="{TemplateBinding Background}" 
          BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}" 
          IsTabStop="{TemplateBinding IsTabStop}" 
          Padding="{TemplateBinding Padding}" 
          HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}" 
          VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"/> 
      </Grid> 
     </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

ScrollViewerののContentElementは、デフォルトではテキストボックスにあるであろうあなたも好きなら、あなたは代わりのContentPresenterの代わりができます。

次に、それを適用します。

<TextBox Text="Blah Blah Blah you can copy me!" Style="{StaticResource ReadOnlyTextBox}"/> 

これが役に立ちます。

追加: @Doodleusはコメントに指摘しました。テンプレート内のコンテンツプロパティをバインドするテンプレートが必要な場合があります。 「ContentElement」はSilverlight TextBoxコントロールのという名前のです。異なるxamlバリアントで見るべき微妙なニュアンスの違いの1つ。私は最初に例を作成したときにタグに注意を払ってはいけません。だから私を訂正するために彼に名誉を与える。

+0

はい私のために働く。ありがとう.. –

+2

あなたはまたこのケースでそれをスローすることができます:) –

+1

欠けている1つの重要なビットはscrollviewerの次の属性です:Content = "{TemplateBinding Text}"。これがなければ、テキストボックスのテキストは表示されません。まだ – doodlleus

関連する問題