Ras*_*sto 6 .net wpf custom-controls richtextbox flowdocument
在WPF中,我想创建自定义Inline实现.来自以下文档Inline:"为所有内联流内容元素提供基础的抽象类." 类,如Figure,Run或Span继承Inline.
我继承的自定义类Inline将类似于'2 lined Run'.我对文档流程有特殊需求,这似乎是唯一的方法.但是我不知道从哪里开始:Inline没有定义任何成员!它是抽象类,所以它是继承的,但没有关于如何从它继承的文档.不是在MSDN中,而是在其他地方我找不到它.
如果您可以提供一些在线资源(教程/博客/文章)或代码示例如何创建子类Inline.例如,只是一些宽度和高度的空盒子.
如果你想知道我为什么要创建自定义Inline元素,请查看问题在WPF中创建吉他和弦编辑器.
基类仅可用于添加类型保真度的目的。例如,FlowDocument 处理器中的代码可能只想执行如下代码:
if(currentElement is Inline)
{
   // Do something
}
Inline 实际上根本不需要做任何事情。
至于 Inline 的子类化,我认为你可能无法实现你想要的。我的理解是 FlowDocument 渲染器负责查看元素的类型并根据其类型和属性解释它们的行为方式。换句话说,它不知道您的自定义代码。我认为你能做的最好的事情就是从一个有用的元素进行子类化,并让你的子类与属性值或任何可重写的东西混在一起。
您也可以添加附加属性并处理定义这些属性的子元素。例如,如果您希望超链接容器允许不同的子元素提供不同的链接,您可以从 Hyperlink 进行子类化,定义新的 Link 附加属性,并以不同于 Hyperlink 本身的方式处理子元素的单击事件。
您还可以使用 InlineUIContainer 和 BlockUIContainer 元素取得一些成功,这些元素允许您在其中嵌入任何 UIElement,包括自定义 UIElement。
| 归档时间: | 
 | 
| 查看次数: | 828 次 | 
| 最近记录: |