【问题标题】:Customize control/ Writing Control Templates in wp7在 wp7 中自定义控件/编写控件模板
【发布时间】:2012-03-05 12:27:56
【问题描述】:

我一直在尝试在 wp7 中自定义一个 webbrowser 控件。我需要做的就是添加一个边框属性(我认为它已经在 webbrowser 中可用,但是当我将它作为控件时我必须使它成为强制性的)并且想要添加一些额外的事件处理程序并将其作为控件以便以后可以在不同的项目中使用。

我尝试阅读 msdn 中的材料以编写控制模板,这一切都围绕着编写一些 xaml 代码并将其附加到代码隐藏以使其工作。我不明白的是我如何学习xaml?或者换句话说,msdn 在 xaml 中讨论的所有标签的引用在哪里?它似乎很大,我不知道该怎么做。 msdn 中的教程直接泄露了 xaml 代码,我完全糊涂了..

所以现在我要做的就是这个,

  1. 在 Expression Blend(Windows Phone 控件库)中创建一个控件,该控件将创建一个继承的类 (MyCustomControl) 来自 CustomControl 基类。

  2. 现在在 xaml 中,我添加了一个 webbrowser 控件并添加了四个事件处理程序(mouseup、down 等)。

  3. 我在blend中构建了这个控件,并在VS2010中添加了对应的dll。

  4. 现在,一旦我尝试将此控件添加到我的 wp7 手机应用程序中,它会显示“无法创建 MyCustomControl 的实例”..

这些是我在创建链接时引用的更多链接, Windowsphone - Creating a custom control Windowsphone - Control Template. UserControl vs Custom Control Creating a new control by creating ControlTemplate

任何进一步的帮助都会很棒。

【问题讨论】:

  • 我的猜测是,如果没有这个项目的一些(如果不是全部)相关代码,那么没有人能够帮助你。你问的是一个非常笼统和模糊的问题,很可能会得到相同类型的答案。
  • 但我需要的只是一个一般性的答案——在哪里引用 xaml 来编写控件模板?如何在表达式混合中自定义控件(例如 Web 浏览器)并在其他项目中使用它。我刚刚说了我所做的步骤。我只想了解该过程。似乎 .NET 有一个做任何事情都有大量的程序..

标签: c# xaml windows-phone-7 expression-blend


【解决方案1】:

没有可以添加到 XAML 中的“元素”的明确列表。这样做的原因是 XAML 解析器可以创建任何基于您提供的 XML 的 UIElement 类。因此,您可用的元素取决于项目中存在的程序集。阅读MSDN XAML Overview了解详情

有关默认存在的控件列表,请查看 System.Windows.Controls 命名空间(我认为此链接不适用于您的 Silverlight 版本,最好使用对象浏览器查看项目中的程序集)。

对于您的问题,您想为WebBrowser 控件添加边框。我建议创建一个UserControl as per this tutorial

【讨论】:

  • 感谢您的参考。我猜你已经写了这篇文章。好东西!这对理解 Binding 很有帮助。
猜你喜欢
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多