Controlmehind for ControlTemplate的无形控制?

时间:2011-08-30 13:00:20

标签: wpf custom-controls code-behind controltemplate

我正在编写一个无形控件,它使用通常的Generic.xaml来应用默认控件模板。

这个控件模板需要一些代码隐藏才能呈现自己(主要是为了响应resize事件),但是我很困惑我应该把代码放在哪里,以及我如何从中访问模板。< / p>

此代码仅用于呈现此特定模板,因此不属于控件本身。

有人能给我一些线索吗?

3 个答案:

答案 0 :(得分:2)

这是一个link,可以帮助你

答案 1 :(得分:1)

您可以在Control中覆盖OnRender方法,就像在UserControl中一样。 ControlTemplate中的元素将显示在Control所呈现的任何内容之上。

如果需要在ControlTemplate中的元素之上或之间添加自定义渲染,则必须使用辅助元素作为命名部件。可以在此blogmdm20's link中找到命名部件的示例(搜索“PART _”)。

然后,您可以使用该辅助元素执行渲染,可能基于从控件传递的设置。

答案 2 :(得分:0)

我找到了一个很好的链接,可以使用模板上的附加行为来解决此问题,以附加提供额外功能的ViewModel。这样控件本身就完全不知道任何模板特定的逻辑:

http://www.scottlogic.co.uk/blog/colin/2010/08/developing-a-very-lookless-silverlight-radial-gauge-control/