回答:
このLabel
コントロールは、WPFでのテキストの折り返しを直接サポートしていません。TextBlock
代わりに使用する必要があります。(もちろん、必要に応じて、コントロールのTextBlock
内部に配置することもできLabel
ます。)
サンプルコード:
<TextBlock TextWrapping="WrapWithOverflow">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec adipiscing
nulla quis libero egestas lobortis. Duis blandit imperdiet ornare. Nulla
ac arcu ut purus placerat congue. Integer pretium fermentum gravida.
</TextBlock>
TextBlock
していTextBox
ますか?- TextBlock
WPFは『アバロン』という名前のコードだったのでさんは、読み取り専用となっています。
Padding="5"
他のLabel
コントロールのパディングと一致するように設定する必要がありました。以下のラジェッシュの答えを見てください。
多くの場合、あなたは置き換えることはできませんLabel
とをTextBlock
使用したいとTarget
(セットがに焦点を当てているプロパティを対象とそれがすべてだとして、以下のサンプルコードでは、キーボード例えばALT + Cを使用した場合の制御)Label
を超える本当に申し出TextBlock
。
ただし、a Label
はTextBlock
テキストをレンダリングするためにを使用します(文字列がContent
プロパティに配置されている場合、通常はそれが); したがって、以下TextBlock
のLabel
ようにスタイルを追加できます。
<Label
Content="_Content Text:"
Target="{Binding ElementName=MyTargetControl}">
<Label.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</Label.Resources>
</Label>
<CheckBox x:Name = "MyTargetControl" />
このようにしてLabel
、テキストをラップしながら、の機能を維持できます。
次のコードを使用しました。
<Label>
<Label.Content>
<AccessText TextWrapping="Wrap" Text="xxxxx"/>
</Label.Content>
</Label>
ラベル内にTextBlockを配置できます。
<Label>
<TextBlock Text="Long Text . . . ." TextWrapping="Wrap" />
</Label>
ラベルコントロールでテキストを折り返すには、次のようにラベルのテンプレートを変更します。
<Style x:Key="ErrorBoxStyle" TargetType="{x:Type Label}">
<Setter Property="BorderBrush" Value="#FFF08A73"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Background" Value="#FFFFE3DF"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true" CornerRadius="5" HorizontalAlignment="Stretch">
<TextBlock TextWrapping="Wrap" Text="{TemplateBinding Content}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Labelクラスを使用する代わりに、TextBlockを使用することをお勧めします。これにより、TextWrappingを適切に設定できます。
あなたはいつでもできます:
label1.Content = new TextBlock() { Text = textBox1.Text, TextWrapping = TextWrapping.Wrap };
ただし、この「ラベル」がテキストを表示するだけの場合は、TextBlock
代わりにを使用してください。
Label label1 = new Label() { Content = new TextBlock() { Text = caption, TextWrapping = TextWrapping.Wrap }, FontWeight = FontWeights.Normal };
IsReadOnly="true"
ラベルを模倣するように設定します:)