我试图让Caliburn.Micro 2.0与SlideApplicationFrame一起使用
在Caliburn AppBootstrapper中,我重写了PhoneApplicationFrame:
protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
{
return new SlideApplicationFrame();
}
这将导致RootFrame具有按预期工作的幻灯片行为。
在App.xaml中,我引用了SlideView库:
xmlns:library="clr-namespace:SlideView.Library;assembly=SlideView.Library"
然后我将SlideApplicationFrame内容加载到RootVisual中:
<Application.RootVisual>
<library:SlideApplicationFrame Header="Test App" Background="White">
<library:SlideApplicationFrame.LeftContent>
<TextBlock Text="Right" Width="200"/>
</library:SlideApplicationFrame.LeftContent>
<library:SlideApplicationFrame.RightContent>
<TextBlock Text="Left" Width="200"/>
</library:SlideApplicationFrame.RightContent>
</library:SlideApplicationFrame>
</Application.RootVisual>
这不起作用!但如果我加载一个简单的矩形,它将在加载第一页之前显示。
<Application.RootVisual>
<Rectangle Width="100" Height="100" Fill="Red" VerticalAlignment="Top"/>
</Application.RootVisual>
我是否需要添加一个额外覆盖,将内容添加到RootVisual?
不能再思考了。非常感谢任何帮助。
更新2014年10月19日:
我发现RootVisual是由Caliburn Micro设定的。因此,mvermef指出App.xaml中不需要任何RootVisual代码。我删除了那部分。
我将覆盖CreatePhoneApplicationFrame更改为:
protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
{
SlideApplicationFrame frame = new SlideApplicationFrame();
frame.Header = "Test";
Rectangle testing = new Rectangle();
testing.Width = 100;
testing.Height = 100;
testing.Fill = new SolidColorBrush(Color.FromArgb(255,208,208,208));
frame.LeftContent = testing;
return frame;
}
这将在SlideApplicationFrame的LeftContent视图中给出一个矩形。我现在需要了解如何将Caliburn视图作为内容加载..
所以我不需要弄清楚它与MainPage的搭配方式。有任何想法吗?