我遇到了一个奇怪的情况:下面的示例代码替换了窗口的内容,使用了设置器的背景颜色,并提供了一个带有两个标签的堆栈面板。一个用于背景,一个用于标题。
问题是,它们在设计时
<Label Content="{TemplateBinding Background}" />
确实完美地显示了背景值,但
<Label Content="{TemplateBinding Title}" />
只有在运行应用程序时才会这样做。这里有什么区别?
我玩过 TargetType(通过将其设置为 MainWindow,没有效果)
这是完整的示例:
<Window x:Class="TBinding.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="350" Width="525">
<Window.Style>
<Style TargetType="Window">
<Setter Property="Background" Value="LawnGreen" />
<Setter Property="Title" Value="The title of this window" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Window">
<StackPanel Margin="50" Background="{TemplateBinding Background}">
<Label Content="{TemplateBinding Background}" />
<Label Content="{TemplateBinding Title}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Style>
</Window>