Caliburn Micro使用自定义RootFrame打破RootVisual - WP8

时间:2014-10-16 00:33:14

标签: c# windows-phone-8 caliburn.micro

我试图让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的搭配方式。有任何想法吗?

0 个答案:

没有答案