1
我正在實現兩個狀態元素。我有兩個xaml(第一個狀態和第二個狀態)。我應該點擊鼠標來改變狀態。WPF。 TwoState元素
我創建自己的控制孩子使用XAML
<Style TargetType="l:ActionButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="l:ActionButton">
<ContentControl x:Name="LayoutRoot">
<ContentControl.Resources>
<ControlTemplate x:Key="buttonDownTemplate">
<Canvas>.....</Canvas>
</ControlTemplate>
<ControlTemplate x:Key="buttonUpTemplate">
<Canvas>.....<Canvas>
</ControlTemplate>
</ContentControl.Resources>
</ContentControl>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在OnApplyTemplate我處理模板改變
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var btn = GetTemplateChild("LayoutRoot") as ContentControl;
if (btn != null)
{
btn.MouseLeftButtonDown += (o, e) =>
{
//sample change template
var template = (ControlTemplate)btn.FindResource("buttonDownTemplate");
this.Template = template;
};
}
}
但是當我運行的應用程序與我的控制,我得到:「具有相同鍵的項已經被添加了。「例外?
這是怎麼回事。我的方式是對的嗎?
謝謝,安德魯