仅带有TextBlock的用户控件。如何将TextWrapping属性提供给使用者?

问题描述 投票:0回答:1

我有一个包含单个UserControl的极简主义TextBlock,我将其原型制作如下:

<Grid>
    <TextBlock x:Name="textBlockExt" x:FieldModifier="public"/>
</Grid>
public partial class TextBlockExt : UserControl
{
    public TextBlockExt()
    {
        InitializeComponent();

        DataContext = this;
    }

    public string Text
    {
        get => textBlockExt.Text;
        set { textBlockExt.Text = value.ToUpper(); } // to be expanded later
    }
}

然后我通过]消耗控件>

<Grid>
    <StackPanel>
        <local:TextBlockExt FontSize="30" x:Name="txb" Text="Hello World" TextBlock.TextAlignment="Center"/>
        <Button Content="To Upper" Width="100" Click="Button_Click"/>
    </StackPanel>
</Grid>

其背后的代码是

public MainWindow()
{
    InitializeComponent();

    txb.textBlockExt.TextWrapping = TextWrapping.WrapWithOverflow;
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    txb.Text = "one two three four five six seven eight";
}

我不喜欢上面MainWindow构造函数中的代码,并且需要知道如何在XAML中设置T extWrapping

我有一个包含单个TextBlock的简约UserControl,我将其原型制作如下:[

c# wpf xaml wpf-controls
1个回答
0
投票

将属性TextWrapping添加到TextBlockExt类。使用与Text属性相同的方法:

© www.soinside.com 2019 - 2024. All rights reserved.