Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-将内容停靠在ContentPresenter中 情况_C#_Wpf - Fatal编程技术网

C# WPF-将内容停靠在ContentPresenter中 情况

C# WPF-将内容停靠在ContentPresenter中 情况,c#,wpf,C#,Wpf,我正在为WPF应用程序构建一个插件。父应用程序有一个ContentPresenter,我的插件返回一个UserControl。当父应用程序运行时,它会加载我的插件并将我的用户控件放在ContentPresenter中 问题 问题是我的UserControl没有调整大小以适应ContentPresenter,因此当ContentPresenter太小而无法显示所有内容时,我的UserControl就会被切断。如果调整应用程序的大小,使ContentPresenter变得比我的UserControl

我正在为WPF应用程序构建一个插件。父应用程序有一个ContentPresenter,我的插件返回一个UserControl。当父应用程序运行时,它会加载我的插件并将我的用户控件放在ContentPresenter中

问题 问题是我的UserControl没有调整大小以适应ContentPresenter,因此当ContentPresenter太小而无法显示所有内容时,我的UserControl就会被切断。如果调整应用程序的大小,使ContentPresenter变得比我的UserControl更大,那么我的UserControl周围就会有一堆空白

基本上,我希望我的UserControl能够像在DockPanel中一样工作

我试过的 ContentPresenter和UserControl都已将水平和垂直对齐设置为“拉伸”

如果我将UserControl包装在一个ViewBox中,我可以达到预期的效果,但我不知道这样做是否正确。感觉好像我错过了一些基本的布局原则(这可能只是我Winforms时代的遗留问题)。在ContentPresenter元素中是否有任何“适当”的方法来实现停靠效果


编辑:我想强调,这不是ContentControl与ContentPresenter之间的问题。我无法更改ContentPresenter元素,因为它是父应用程序的一部分。我唯一能控制的是我自己插件的内容,这些内容被放在ContentPresenter元素中。如果我需要在运行时通过遍历可视化树来调整属性,那么父应用程序的开发人员可能会允许我限制对ContentPresenter的访问,但他们已经声明不希望插件导航到自己的控件范围之外。这与其说是一个技术限制,不如说是他们的条款和条件不允许的限制。

可能的重复我标记为重复,因为我认为您应该使用ContentControl而不是ContentPresenter。如果您不同意,请将相关代码发布到ContentPresenter。我不是父应用程序的开发人员,因此我只能使用ContentPresenter。父应用程序开发人员出于自己的目的使用ContentPresenter的其他功能。我所能控制的就是插件的内容。你的
UserControl
中的每个元素是否都设计成在
UserControl
大小改变时改变其大小?如果
UserControl
中的
Grid
具有固定大小,则
UserControl
可以拉伸和收缩,但
Grid
保持不变。是的,它设计用于调整大小,并且已在父应用程序外部成功测试了大小调整。