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的
对不起编辑我的关闭,没有阅读最后的第一部分。什么是“单位文本框”的样子? –
以下是该文件:https://gist.github.com/dg9ngf/1a5285edef5680af3191 – ygoe