2017-01-23 10 views
0

私はカスタムポップアップウィンドウを使用して、ユーザーにいくつかのコンテンツを表示しています。なぜプリズムのポップアップウィンドウのアクションウィンドウのコンテンツが親ウィンドウに引き伸ばされていないのですか?

<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> 

ユーザーがポップアップウィンドウのサイズを変更しようとするまで、すべてうまく動作します。コンテンツは親ウィンドウの中央に配置されます。

Popup Window Screenshot

私のせいであるかを理解、私はプリズムのインタラクティビティサンプルを探求しようとすると私は同じ問題があまりにもそこにある参照してください。どうすればこの問題を解決できますか?

答えて

2

私の質問が不完全なので、私はあなた(MM8)に謝罪したいですので、あなたの答えも不完全です。私はあなたの答えを見た後でそれを理解しています。

なぜ私の問題は解決しないのですか? 私のDataFeedManagerViewはWidth = "960"とHeight = "540"固定長でなければなりません。選択が変更されたときに左側にアイテムコントロールがあり、中央にコンテンツコントロールがあり、そのコンテンツが動的に変化します(もちろんコンテンツサイズも変化しています)。

遅延詳細&解決策。 私のShellViewからの私の質問の最初のxaml、私のポップアップウィンドウは、幅= "960"と高さ= "540"固定長のDataFeedManagerViewです。だから私はポップアップウィンドウのサイズを変更するときに私のユーザーコントロールに集中されます。 DataFeedManagerViewから幅が& xamlの部分だけを削除すると、すぐにポップアップウィンドウのコンテンツが伸びます。しかし、削除後、ポップアップウィンドウが画面に表示されると、サイズが大きすぎますし、再びサイズを固定値に設定したいと思います。これを解決するために、私はポップアップウィンドウにスタイルを与えます。だから私の問題の解決策は、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> 

は、私は私の質問&答えは他の人に役立つことを願っています。ありがとう。

1

どうすればこの問題を解決できますか?

公式のプリズムサンプルでは、​​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> 
関連する問題