【问题标题】:How to set TextBlock extension property programmatically如何以编程方式设置 TextBlock 扩展属性
【发布时间】:2014-01-22 16:10:59
【问题描述】:

我有一个文本块的扩展,允许分配格式化的“内联”。我遵循@max 提供的方法来创建这个扩展。

Format part of the text of TextBlock using iValueConverter

现在,我需要做的是能够以编程方式将此 FormattedText 属性设置为 UI 元素,它是动态创建的 TextBlock 的父元素。

<TextBlock FontSize="14" FontFamily="Calibri" local:TextBlockEx.FormattedText="{Binding Converter={StaticResource LabelFormatConerter}}" />

【问题讨论】:

    标签: wpf c#-4.0 textblock


    【解决方案1】:

    您是否尝试过使用在您的链接问题的答案中明确声明的方法,还是不看就复制?也许是这样的?:

    TextBlockEx textBlockEx = new TextBlockEx();
    textBlockEx.SetFormattedText(textBlockEx, new Run() { Text = "Hello World" });
    

    更新>>>

    真的应该一次问所有事情,而不是在你的问题得到回答后再问其他问题。我什至无法为您的第二个问题提供完整答案,因为您从Binding 中删除了Binding.PathSource。在代码中创建您的Binding

    Binding binding = new Binding("PropertyOfYourDataSourceObject");
    binding.Source = YourDataSourceObject;
    binding.Converter = new SomeConverter();
    textBlockEx.SetBinding(TextBlockEx.FormattedTextProperty, binding);
    

    请参阅 MSDN 上的How to: Create a Binding in Code 页面以获取更多帮助。

    【讨论】:

    • 感谢您的回复。正如您在回复中建议的那样,我想我确实做到了这一点。但是,我注意到我实际上并没有包含我需要帮助的代码行。我希望将此 XAML 转换为可以从代码隐藏中执行的 C# 代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2023-01-03
    • 2015-07-04
    • 2021-05-20
    相关资源
    最近更新 更多