我正在为WPF应用程序构建一个插件。父应用程序有一个ContentPresenter,我的插件返回一个UserControl。当父应用程序运行时,它会加载我的插件并将我的UserControl放在ContentPresenter中。
问题是我的UserControl没有调整大小以适应ContentPresenter,因此当ContentPresenter太小而无法显示所有内容时,我的UserControl就会被切断。如果应用程序调整大小以使ContentPresenter变得比我的UserControl大,那么我的UserControl周围会出现一堆空白。
基本上,我希望我的UserControl就像它在DockPanel中一样。
ContentPresenter和UserControl都已将水平和垂直对齐设置为Stretch。
如果我将UserControl包装在ViewBox中,我可以实现所需的结果,但我真的不知道这是否是正确的方法。感觉就像我错过了一些基本的布局原则(这可能只是我Winforms日子的延续)。在ContentPresenter元素中是否有任何“正确”的方法来实现对接效果?
编辑:我想强调一点,这不是ContentControl与ContentPresenter问题。我无法更改ContentPresenter元素,因为它是父应用程序的一部分。我唯一可以控制的是我自己的插件的内容,它们被放置在ContentPresenter元素中。如果我需要通过在运行时遍历可视化树来调整属性,那么父应用程序的开发人员可能允许我对ContentPresenter进行有限访问,但是他们已经声明他们不希望插件在自己的范围之外导航控制。这不是技术限制,而是它们的条款和条件 - 不允许 - 它的限制。