我试图创建一个可以采取的标签属性值“排名”自定义AccordionItem:通过添加属性自定义现有的控制
<local:MyAccItem Header="" Content="" Rank="" />
这不是真正的工作,因为我控制只包含一个网格包含原来的Accordion项目。我曾尝试操作该模板,并使用修改后的模板创建了一个资源文件。但我想改变AccordionItem中我已经模板化的Ellipse对象的大小,以便根据该项目的等级进行更改。我真的陷入困境。帮助赞赏。
我试图创建一个可以采取的标签属性值“排名”自定义AccordionItem:通过添加属性自定义现有的控制
<local:MyAccItem Header="" Content="" Rank="" />
这不是真正的工作,因为我控制只包含一个网格包含原来的Accordion项目。我曾尝试操作该模板,并使用修改后的模板创建了一个资源文件。但我想改变AccordionItem中我已经模板化的Ellipse对象的大小,以便根据该项目的等级进行更改。我真的陷入困境。帮助赞赏。
您需要在MyAccItem UserControl的代码隐藏中创建一个Dependency Property'Rank'。我假设你的等级是一个整数?如果是这样,你可以把它放在你的代码后面,编译,然后它应该在你的XAML中工作。
#region Rank (DependencyProperty)
/// <summary>
/// Rank
/// </summary>
public int Rank
{
get { return (int)GetValue(RankProperty); }
set { SetValue(RankProperty, value); }
}
public static readonly DependencyProperty RankProperty =
DependencyProperty.Register("Rank", typeof(int), typeof(MyAccItem),
new PropertyMetadata(0, new PropertyChangedCallback(OnRankChanged)));
private static void OnRankChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((MyAccItem)d).OnRankChanged(e);
}
protected virtual void OnRankChanged(DependencyPropertyChangedEventArgs e)
{
}
#endregion Rank (DependencyProperty)
trynig它现在...但什么是虚拟的方法? – JeroenEijkhof 2010-07-09 06:17:04
...和#region Rank是什么? – JeroenEijkhof 2010-07-09 06:19:05
这工作谢谢。但我不需要所有额外的东西,我不明白。如虚拟方法和'#地区...'。 – JeroenEijkhof 2010-07-09 16:07:45
#region Rank
#endregion Rank
这个标签用于封装它们之间的代码,这样你就可以扩大以及其中折叠代码。
它只是保持组织的东西,没有更多!
请张贴一些代码 – Ozan 2010-07-09 02:08:17