2016-02-25 54 views
0

某些樣式在此處無法按預期工作。這是在演示的風格,它使背景橙色,證明它已經應用於控制:對於DataTemplate中的派生控件忽略顯式樣式

<Style x:Key="OrangeTestStyle" TargetType="TextBox"> 
    <Setter Property="Background" Value="Orange"/> 
</Style> 

我可以這樣使用它只是正常的文本框,並從文本框派生我自己的類:

<TextBox Style="{StaticResource OrangeTestStyle}"/><!-- orange --> 
<ui:UnitTextBox Style="{StaticResource OrangeTestStyle}"/><!-- orange --> 

兩者都有橙色背景。但是它不適用於派生控件,如果它在DataTemplate中。實際上,根本沒有明確設置的樣式應用於任何派生控件。標準框架控件工作得很好:

<DataTemplate> 
    <StackPanel> 
     <TextBox Style="{StaticResource OrangeTestStyle}"/><!-- orange --> 
     <ui:UnitTextBox Style="{StaticResource OrangeTestStyle}"/><!-- white --> 
    </StackPanel> 
</DataTemplate> 

我的派生控件沒有覆蓋任何與Style有關的東西。它只是添加一個新的依賴項屬性,並在其他視覺元素中顯示其內容,這是一種裝飾。但它仍然直接來自TextBox。樣式也可以在派生控件中工作,但如果在模板中則不會。樣式也適用於模板,但不適用於派生控件。 (我的應用程序中有其他衍生控件。)

這裏有什麼問題?

.NET 4.0,Visual Studio 2010中,Windows 7的

+0

對不起編輯我的關閉,沒有閱讀最後的第一部分。什麼是「單位文本框」的樣子? –

+0

以下是該文件:https://gist.github.com/dg9ngf/1a5285edef5680af3191 – ygoe

回答

1

UnitTextBox構造應該修復它卸下SetResourceReference(StyleProperty, typeof(TextBox))