在 WPF 中继承标准控件的最快方法?

发布于 2024-10-13 20:32:46 字数 300 浏览 0 评论 0原文

我只想用一些附加属性包装一个标准控件(看起来保持不变,我不想在第一阶段进行主题化)。

我可以只继承这个标准控件而不是 UserControl 或 Control 吗?事实上,我读到使用自定义控制项目模板而不是用户控制控制项目模板是必须的。为什么 ?

更新:我尝试使用自定义控制项目并从标准滑块继承,但我没有在视觉上显示任何内容!现在我应该怎么做才能拥有与标准滑块相同的视觉滑块?

我知道用户控件和自定义控件之间的区别,但实际上,当您只需要一个标准控件时该怎么办?例如,如果我将滑块封装在用户控件而不是自定义控件中,滑块将如何自动调整大小?

I just want to wrap a standard control with some more additional properties (look stay the same, I don't want to do theming in first stage).

Can I just inherit from this standard control instead of UserControl or Control ? In fact I read it is obligatoryb to use Custom Control Project Template and not UserControl ontrol Project Template. Why ?

Update: I try with a Custom Control Project and inherit from the standard slider but I have nothing show up visually ! Now what should I do to have the same visual slider as the standard one ?

I know the difference between a user control and a custom control but in practice how do you do when you just want ONE single standard control ? How will a slider for example resize AUTOMATICALLY if I encapsulate it inside a User Control instead of a Custom Control ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟柳画桥 2024-10-20 20:32:54

自定义控件是单个控件,可以从另一个控件派生,这将支持样式。 UserControl 是由许多不同控件组成的复合控件,作为一个整体,不支持样式(但各部分支持)。

如果您想向现有控件添加任何类型的功能,请从它派生。如果您想将多个控件打包在一起以便更容易处理它们(您仍然可以向其中添加 DP),请使用 UserControl。

单独的自定义控件不会执行与调整大小等相关的任何操作,这取决于您从外部提供给它的设置(即 Horizo​​ntalAlignmentVerticalAlignment 等)当您在容器中使用它时。自定义控件应该从基类继承默认模板,除非您覆盖它。

A custom control is a single control and can derive from another control, this would support styling. A UserControl is a composite control out of many different controls, and as a whole, doesn't support styling (the parts do however).

If you want to add features of any kind to an existing control, derive from it. If you want to pack several controls together to make it easier to handle them (you could still add DP's to it), use a UserControl.

A custom control alone won't do anything related to resizing etc, that is dependent on the settings you supply to it from the outside (ie. HorizontalAlignment, VerticalAlignment and others) when you used it in a container. The custom control should inherit the default template from the base class unless you override it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文