为什么 Prism 的弹出 window 操作 window 内容没有延伸到它的父级 window?
Why prism's popup window action window content not stretched to it's parent window?
我正在使用自定义弹出窗口window 向用户显示一些内容。
<i:Interaction.Triggers>
<mvvm:InteractionRequestTrigger SourceObject="{Binding NotificationRequest}">
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView/>
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
</mvvm:InteractionRequestTrigger>
</i:Interaction.Triggers>
一切正常,直到用户尝试调整弹出窗口的大小 window。内容将以其父级 window.
为中心
为了了解我的错,我尝试探索 Prism 的交互示例,我发现也存在同样的问题。我该如何解决这个问题?
How can i solve this problem?
在官方 Prism 示例中,只需删除 CustomPopupView UserControl 的显式宽度即可。您可以通过将宽度设置为 double.NaN
:
来实现
<prism:PopupWindowAction>
<prism:PopupWindowAction.WindowContent>
<views:CustomPopupView Width="NaN" />
</prism:PopupWindowAction.WindowContent>
</prism:PopupWindowAction>
您应该能够对您的 DataFeedManagerView 进行同样的操作:
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView Height="NaN" Width="NaN" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
我想向你道歉(mm8) 因为我的问题不完整,所以你的回答也不完整。看到你的回答我明白了。
为什么你的回答不能解决我的问题?
因为我的 DataFeedManagerView 必须是 Width="960" 和 Height="540" 固定长度。更改选择时左侧有一个项目控件,中心有内容控件,其内容动态变化(当然内容大小也在变化)与选择。
延迟细节和解决方案。
首先 xaml 在我的 ShellView 问题中,我的弹出窗口 window 是 DataFeedManagerView,它的宽度为“960”,高度为“540”,长度固定。因此,当我调整弹出窗口 window 大小时,它将以我的用户控件为中心。所以很快只从 DataFeedManagerView 中删除宽度和高度 xaml 部分,它将像我想要的那样拉伸到弹出 window 内容。但是删除后,当弹出window显示在屏幕上时,它的大小会太大,我想再次将它的大小设置为固定值。为了解决这个问题,我也会给弹出窗口一个样式 window。所以我的问题的解决方案是从 DataFeedManagerView 中删除固定的宽度和高度属性并更改 ShellView xaml,如下所示;
<i:Interaction.Triggers>
<mvvm:InteractionRequestTrigger SourceObject="{Binding NotificationRequest}">
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowStyle>
<Style TargetType="Window">
<Setter Property="Width" Value="960"/>
<Setter Property="Height" Value="540"/>
</Style>
</mvvm:PopupWindowAction.WindowStyle>
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView/>
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
</mvvm:InteractionRequestTrigger>
</i:Interaction.Triggers>
希望我的问题和回答能对其他人有所帮助。谢谢
我正在使用自定义弹出窗口window 向用户显示一些内容。
<i:Interaction.Triggers>
<mvvm:InteractionRequestTrigger SourceObject="{Binding NotificationRequest}">
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView/>
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
</mvvm:InteractionRequestTrigger>
</i:Interaction.Triggers>
一切正常,直到用户尝试调整弹出窗口的大小 window。内容将以其父级 window.
为中心为了了解我的错,我尝试探索 Prism 的交互示例,我发现也存在同样的问题。我该如何解决这个问题?
How can i solve this problem?
在官方 Prism 示例中,只需删除 CustomPopupView UserControl 的显式宽度即可。您可以通过将宽度设置为 double.NaN
:
<prism:PopupWindowAction>
<prism:PopupWindowAction.WindowContent>
<views:CustomPopupView Width="NaN" />
</prism:PopupWindowAction.WindowContent>
</prism:PopupWindowAction>
您应该能够对您的 DataFeedManagerView 进行同样的操作:
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView Height="NaN" Width="NaN" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
我想向你道歉(mm8) 因为我的问题不完整,所以你的回答也不完整。看到你的回答我明白了。
为什么你的回答不能解决我的问题? 因为我的 DataFeedManagerView 必须是 Width="960" 和 Height="540" 固定长度。更改选择时左侧有一个项目控件,中心有内容控件,其内容动态变化(当然内容大小也在变化)与选择。
延迟细节和解决方案。 首先 xaml 在我的 ShellView 问题中,我的弹出窗口 window 是 DataFeedManagerView,它的宽度为“960”,高度为“540”,长度固定。因此,当我调整弹出窗口 window 大小时,它将以我的用户控件为中心。所以很快只从 DataFeedManagerView 中删除宽度和高度 xaml 部分,它将像我想要的那样拉伸到弹出 window 内容。但是删除后,当弹出window显示在屏幕上时,它的大小会太大,我想再次将它的大小设置为固定值。为了解决这个问题,我也会给弹出窗口一个样式 window。所以我的问题的解决方案是从 DataFeedManagerView 中删除固定的宽度和高度属性并更改 ShellView xaml,如下所示;
<i:Interaction.Triggers>
<mvvm:InteractionRequestTrigger SourceObject="{Binding NotificationRequest}">
<mvvm:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
<mvvm:PopupWindowAction.WindowStyle>
<Style TargetType="Window">
<Setter Property="Width" Value="960"/>
<Setter Property="Height" Value="540"/>
</Style>
</mvvm:PopupWindowAction.WindowStyle>
<mvvm:PopupWindowAction.WindowContent>
<views:DataFeedManagerView/>
</mvvm:PopupWindowAction.WindowContent>
</mvvm:PopupWindowAction>
</mvvm:InteractionRequestTrigger>
</i:Interaction.Triggers>
希望我的问题和回答能对其他人有所帮助。谢谢