谁能解释如何将 XAML 弹出窗口与 Caliburn Micro 一起使用。
谢谢
编辑:(使我的代码与我想要实现的目标更相关)当我像这样在 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 任务和 Camera Capture 任务?
如何将弹出窗口绑定到我的视图模型。
编辑:
@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 中指定高度有效,但我不能使用它,因为我必须适应手机上不同的屏幕分辨率)