gpt4 book ai didi

.net - 如何创建 Inline 类的子类? (FlowDocument 中使用的那个)

转载 作者:行者123 更新时间:2023-12-04 15:48:03 27 4
gpt4 key购买 nike

在 WPF 中,我想创建自定义 Inline 执行。来自 Inline 的文档:“为所有内联流内容元素提供基础的抽象类。”类如 Figure , Run Span 继承自 Inline .

我的自定义类继承自 Inline 将类似于“2 内衬运行”。我对文档流有特殊需求,这似乎是唯一的方法。但是我不知道从哪里开始: Inline 没有定义任何成员! 它是抽象类,所以它应该被继承,但 没有文档 关于如何继承它。不在 MSDN 中,也没有其他地方可以找到它。

如果你能提供一些在线资源(教程/博客/文章)或代码示例如何创建 Inline 的子类.例如,只是一些宽度和高度的空盒子。

如果你想知道我为什么要创建自定义 Inline element 看看问题 Create guitar chords editor in WPF .

最佳答案

基类可以仅用于增加类型保真度的目的。例如,FlowDocument 处理器中的代码可能只想执行以下代码:

if(currentElement is Inline)
{
// Do something
}

内联实际上根本不需要做任何事情。

至于从内联子类化,我认为你可能无法实现你想要的。我的理解是 FlowDocument 渲染器负责查看元素的类型并根据其类型和属性解释它们的行为方式。换句话说,它不知道您的自定义代码。我认为你能做的最好的事情是从一个有用的元素子类化,并让你的子类与属性值或任何可覆盖的东西混在一起。

您也可以添加附加属性并处理定义这些属性的子元素。例如,如果您希望超链接容器允许不同的子元素提供不同的链接,您可以从 Hyperlink 子类化,定义一个新的 Link 附加属性,并以不同于 Hyperlink 本身的方式处理子元素的单击事件。

您也可以使用 InlineUIContainer 和 BlockUIContainer 元素取得一些成功,这使您可以在其中嵌入任何 UIElement,包括自定义 UIElement。

关于.net - 如何创建 Inline 类的子类? (FlowDocument 中使用的那个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5798194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com