0

Caliburn Micro で XAML ポップアップを使用する方法を説明できる人はいますか?

ありがとう

編集:(私のコードを私が達成したいものにより適切にしました) xaml でポップアップを次のように定義すると:

<Button x:Name="ShowPopup" Content="Popup"/>
<Popup x:Name="my_popup_xaml" Grid.Row="2">
    <Border  BorderThickness="2" Margin="10" BorderBrush="Green">
        <StackPanel Background="LightBlue">
            <TextBlock Text="Select Option" FontSize="21" Margin="10,0" />
            <StackPanel Orientation="Horizontal" Margin="0,10">
                <Button x:Name="SelectPhoto"  Content="Select photo From Library" Width="215"/>
                <Button x:Name="CapturePhoto"    Content="Use Camera"   Width="215"/>
            </StackPanel>
        </StackPanel>
    </Border>
</Popup>

WindowManager を使用してこのポップアップを表示するにはどうすればよいですか?

ここでは PhotoChooser タスクとカメラ キャプチャ タスクを使用するだけなので、新しいビュー モデルを作成する必要がありますか?

ポップアップをビュー モデルにバインドするにはどうすればよいですか。

編集:

@Charleh、別のViewModelでwindowmanagerを使用するためのあなたの提案は、マイナーな調整で機能しました。

タグを削除し<Popup>、ウィンドウ マネージャーを使用してポップアップを表示しました。

しかし、ポップアップを閉じることができず、ポップアップが画面の上部に表示されるため、トリミングされます。これを修正するにはどうすればよいですか?

編集:画面のTryClose()メソッドを使用してダイアログを閉じることができました。

ShowDialogメソッドの代わりにメソッドを使用するShowPopupと、ウィンドウの配置は少し良くなりましたが、それでも上部にスタックし、中央に配置されません。

ダイアログ画像

編集: 新しい PhoneApplicationPage (ウィンドウに相当する Windows Phone 8) を作成し、ダイアログとして表示しました。このアプローチの問題は、PhoneApplicationPage が画面スペースを埋めるために自動的に拡大されないことです (ダイアログとして表示されていない場合は拡大されます)。内部のコンテンツに対応するために伸縮しているだけです。`VerticalAlignment="Stretch" を設定しても効果はありません。

プロパティに特定の値を与えるHeightことは適切ではありません。これは、さまざまな電話の解像度にうまく適応しないためです。

@Charleh次のように高さと幅を指定してみました:

Dictionary<string, object> properies = new Dictionary<string, object>();
properies.Add("Height", 768);
properies.Add("Width", 480);
windowManager.ShowDialog(new ImageSelectorPopupViewModel(),null,properies);

このコードは効果がありません (Xaml で高さを指定しても動作しますが、電話のさまざまな画面解像度に対応する必要があるため、使用できません)。

4

1 に答える 1