我正在编写一个 Silverlight 应用程序,它要求我在运行时动态创建一个 ControlTemplate。我发现的大多数解决方案都涉及为每个案例创建一个新模板,但我有太多案例无法做到这一点。我将如何在 C# 中创建一个新的 ControlTemplate?

最佳答案

不能单独使用 C# 在 Silverlight 中创建 ControlTemplate。与 WPF(您可以在其中设置 VisualTree 属性)不同,没有您可以设置的属性来指定 ControlTemplate 的“内容”。

您可以将 XAML 定义为字符串,然后按照 blog post 的说明在 C# 中动态加载它。

代码归结为:

var template = (ControlTemplate)XamlReader.Load("<ControlTemplate " +
       " xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"" +
       " xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
       " content here " +
       "</ControlTemplate>");

关于c# - 在 Silverlight 中在运行时创建 ControlTemplate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6833623/

10-10 22:38