Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.net 有没有办法在WPF应用程序中提供替代布局?_.net_Wpf_Layout - Fatal编程技术网

.net 有没有办法在WPF应用程序中提供替代布局?

.net 有没有办法在WPF应用程序中提供替代布局?,.net,wpf,layout,.net,Wpf,Layout,我正在开发一个将与Microsoft Word结合使用的应用程序。我预计用户将调整我的应用程序窗口和MicrosoftWord窗口的大小,以便它们不会重叠。当他们这样做时,他们可以选择将我的应用程序放在单词的上方(或下方),或放在单词的右侧(或左侧) 在一种情况下,我的应用程序窗口将比high窗口大得多。在另一种情况下,窗口将非常窄 有没有办法为我的窗口提供两种布局,并在运行时从一种切换到另一种 谢谢我想到的第一件事是,您可以动态加载XAML:您可以使用两个完全独立的模板,并将样式应用于您的窗口

我正在开发一个将与Microsoft Word结合使用的应用程序。我预计用户将调整我的应用程序窗口和MicrosoftWord窗口的大小,以便它们不会重叠。当他们这样做时,他们可以选择将我的应用程序放在单词的上方(或下方),或放在单词的右侧(或左侧)

在一种情况下,我的应用程序窗口将比high窗口大得多。在另一种情况下,窗口将非常窄

有没有办法为我的窗口提供两种布局,并在运行时从一种切换到另一种


谢谢

我想到的第一件事是,您可以动态加载XAML:

您可以使用两个完全独立的模板,并将样式应用于您的窗口。该样式可以包括一个触发器,该触发器使用转换器将窗口大小转换为它应该使用的模板


想一想,这种风格可能也没有必要。也许您可以在窗口声明中使用
Template=“{Binding Width,Converter=WidthToTemplateConverter}

而不是转换器,您可以使用WPF的TemplateSelector功能来选择适当的模板

例如:


试试看这篇博文……它可能符合你的要求

您可以使用WPF的TemplateSelector功能来选择合适的模板,而不是转换器。哦,是的,我没有想到。更好的答案!正确地发布,这样就可以进行投票;p