我在WPF中有一个自动调整大小的应用程序用户控件(高度=“自动”宽度=“自动”)。当其中的一堆元素被调整大小时,窗口保持相同的渲染大小。如何强制它调整大小?我在调整窗口内组件大小的函数中尝试了这一行Application.Current.MainWindow.SizeToContent = SizeToContent.WidthAndHeight;
。编译器给出了一个错误,即没有与此调用关联的对象。我试过这行MainWindowBorder.Height = Double.NaN;
来欺骗它来调整大小。也没有运气。
答案 0 :(得分:1)
在XAML中使用SizeToContent
for (auto& s : Plist)
cout << s->getarea() << " should be equal to " << getarea(*s) << '\n';
答案 1 :(得分:1)
如果可以调整所有内部控件的大小,但调整大小的唯一一件事就是Window,这个简单的方法怎么样?希望这会有所帮助..
int mycurrentscreenwidth = 1366;
int mycurrentwindowwidth = 1366;
var screen = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
var screenwidth = screen.Width;
if (Convert.ToInt32(screenwidth) < 1366)
{
double calculate_scalefactor= Convert.ToInt32(screenwidth) / (double)mycurrentscreenwidth;
double newwidth_tobescaled = mycurrentwindowwidth * calculate_scalefactor;
this.Width = newwidth_tobescaled;
}
答案 2 :(得分:0)
要获取当前用户控件的窗口,请参阅:
Access parent window from User Control
然后使用:
Window yourParentWindow = Window.GetWindow(userControl);
yourParentWindow.SizeToContent = SizeToContent.WidthAndHeight;