我有一個IMultiValueConverter
動態創建TextBlock
控件。問題是它沒有樣式。如何使用xaml資源字典中定義的樣式?
如何告訴我的新TextBlock
使用在我的XAML資源字典中定義的樣式?
我有一個IMultiValueConverter
動態創建TextBlock
控件。問題是它沒有樣式。如何使用xaml資源字典中定義的樣式?
如何告訴我的新TextBlock
使用在我的XAML資源字典中定義的樣式?
請參見下面的問題:how to use DynamicResource in the code behind?
使用SetResourceReference
,它等同於使用DynamicResource
在XAML
所以,如果你Style
有重點myTextBlockStyle
TextBlock textBlock = new TextBlock();
textBlock.SetResourceReference(FrameworkElement.StyleProperty, "myTextBlockStyle");
我從來沒有嘗試過在此之前,並根據你的轉換器是幹什麼的,我想如果你的XAML資源字典是外部的,然後將其鏈接到您的顯示的TextBlocks窗口:
<Window.Resources>
<ResourceDictionary Source="[the path to the resource dictionary]"/>
</Window.Resources>
然後在您的文本塊中,確保它們具有在資源字典中定義的樣式附件。如果文本塊是在後面的代碼中創建的,我相信你應該能夠使用FindResource來查找由資源字典鏈接的樣式。然後做這樣的事情:
textBlock1.Style = (Style)FindResource("myTextBlockStyle");
我已經有我的資源字典鏈接像你所顯示。我試圖使用特定的樣式(基於關鍵字)來創建通過「IMultiValueConverter」動態創建的「TextBlock」。 – gcso
我剛剛在您評論的同時更新了我的答案。嘗試FindResource方法,看看它是否有助於找到你的風格。我只在一個元素中嵌入了多值轉換器,例如連接名字和姓氏,我沒有使用它們來動態創建控件。 – Josh