![](/img/trans.png)
[英]Caliburn Micro: how to navigate in Windows phone silverlight
[英]Popup with Caliburn Micro in Windows Phone
谁能解释如何在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任务和Camera Capture任务?
如何将Popup绑定到我的视图模型。
编辑:
@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中指定高度有效,但由于必须适应手机上的不同屏幕分辨率,因此无法使用该高度)
在发布之前,您确实需要阅读Caliburn Micro-大量文章显示了如何将视图上的命令绑定到VM上的方法
为此,请执行以下任一操作:
通过为按钮赋予与方法相同的名称来使用约定进行绑定
<Button x:Name="ShowPopup" />
使用动作消息语法进行绑定:
<Button cal:Message.Attach="[ShowPopup]" />
所有的答案都在这里: http : //caliburnmicro.codeplex.com/documentation
(具体是: http : //caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions&referringTitle=Documentation )
您可以使用按钮执行相同的操作,因此可以使用弹出窗口执行相同的操作
(您是否还考虑过使用具有ShowPopup方法的Caliburns WindowManager?)
编辑:
重新读取后,您似乎想为当前的View和Popup使用相同的ViewModel-是这种情况还是要为Popup使用新的ViewModel? 我建议使用WindowManager,并为弹出窗口创建一个ViewModel-这将更符合CM的功能
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.