wp 8.1 usercontrol和OxyPlot没有显示出来

时间:2015-09-24 17:20:22

标签: c# user-controls windows-phone-8.1 oxyplot

我有一个带有网格作为内容面板的usercontrol,它从datatemplate加载其内容,在xaml中指定使用usercontrol。

我正在广泛使用这个用户控件,模板中的标准xaml控件一切都很好。 现在我试图用OxyPlot

在这个控件中显示一些图表
   <DataTemplate x:Key="SomeChart">
        <Grid x:Name="oxyGrid" >
            <oxy:PlotView x:Name="oxyChart" Model="{Binding model}" />
        </Grid>
    </DataTemplate>

我在usercontrol_loaded中初始化图表的数据模型 但是在我手动调用InvalidateMeasure之前,图表不会显示。 如果我从usercontrol_loaded调用invalidatemeasure,它将无济于事。

如果我在屏幕上显示图表时从任何一点调用invalidatemeasure - 它会有所帮助,图表会显示出来。

目前,我发现我可以在usercontrol_layoutupdated处理程序中调用invalidatemeasure但不喜欢因为它经常触发 并且需要在usercontrol之外的代码。

如果我尝试在usercontrol中处理事件layoutupdated并从那里调用invalidatemeasure(对于oxychart),我得到“检测到布局周期。布局无法完成​​。”

关于什么是错的以及如何修复的任何想法:) 将不胜感激 提前致谢 伊利亚安德

1 个答案:

答案 0 :(得分:0)

永远不要发帖提问:)

加载模板

后,只需在usercontrol中调用UpdateLayout()
   private void spContentPanel_Loaded(object sender, RoutedEventArgs e)
    {
        LoadTemplate();
        UpdateLayout();
    }

其中spContentPanel只是用于模板加载的网格

   <Grid Grid.Row="1" Name="spContentPanel" Loaded="spContentPanel_Loaded"
          HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

    </Grid>