重複の可能性:
WPF テキストブロックを選択可能にする方法はありますか?
ユーザーがコピーできるように、WPF アプリケーションでテキストブロックを選択可能にすることはできますか?
前もって感謝します。
DJ
重複の可能性:
WPF テキストブロックを選択可能にする方法はありますか?
ユーザーがコピーできるように、WPF アプリケーションでテキストブロックを選択可能にすることはできますか?
前もって感謝します。
DJ
読み取り専用のTextBoxにすることができます。これは、TextBlockのように見えます。
<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はデフォルトでTextBoxにありますが、必要に応じて代わりにContentPresenterの代わりに使用することもできます。
次に、それを有効にします。
<TextBox Text="Blah Blah Blah you can copy me!" Style="{StaticResource ReadOnlyTextBox}"/>
お役に立てれば!
補遺: @doodleusがコメントで指摘したように。テンプレート内のコンテンツプロパティをバインドするテンプレートが必要になる場合があります。「ContentElement」はSilverlightTextBoxコントロールの名前付き部分です。さまざまなxamlバリアントで注意すべき微妙なニュアンスの違いの1つ。最初に例を作成したとき、タグに注意を払っていなかったに違いありません。だから私を訂正してくれた彼に称賛を送ります。