如何以编程方式设置TextBlock扩展属性

时间:2014-01-22 16:11:00

标签: wpf c#-4.0 textblock

我有一个textblock扩展名,允许分配格式化的“Inlines”。我按照@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}}" />

1 个答案:

答案 0 :(得分:1)

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

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

更新&gt;&gt;&gt;

真的应该立即询问所有事情,而不是在你的问题得到解答后再提出其他问题。当您从Binding.Path移除SourceBinding时,我甚至无法对您的第二个问题提供完整的答案。要在代码中创建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页面以获取进一步的帮助。