我正在编写一个无形控件,它使用通常的Generic.xaml来应用默认控件模板。
这个控件模板需要一些代码隐藏才能呈现自己(主要是为了响应resize事件),但是我很困惑我应该把代码放在哪里,以及我如何从中访问模板。< / p>
此代码仅用于呈现此特定模板,因此不属于控件本身。
有人能给我一些线索吗?
答案 0 :(得分:2)
这是一个link,可以帮助你
答案 1 :(得分:1)
您可以在Control中覆盖OnRender方法,就像在UserControl中一样。 ControlTemplate中的元素将显示在Control所呈现的任何内容之上。
如果需要在ControlTemplate中的元素之上或之间添加自定义渲染,则必须使用辅助元素作为命名部件。可以在此blog或mdm20's link中找到命名部件的示例(搜索“PART _”)。
然后,您可以使用该辅助元素执行渲染,可能基于从控件传递的设置。
答案 2 :(得分:0)
我找到了一个很好的链接,可以使用模板上的附加行为来解决此问题,以附加提供额外功能的ViewModel。这样控件本身就完全不知道任何模板特定的逻辑: