2012-04-04 13 views
2

カスタムコントロールを表示するときに問題があります。ページが読み込まれると表示されませんが、ウィンドウのサイズを変更するとすぐに表示されます。カスタムコントロールが表示されない

はここで私が使用しているコードです:私が使用している

<UserControl x:Class="KinectBewegingsanalyse.View.UserAnalysisChartView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:c="http://schemas.amcharts.com/stock/wpf/2009/xaml" 
     mc:Ignorable="d" 
     d:DesignWidth="800" d:DesignHeight="600"> 

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resources/Styles.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

<Grid> 
    <c:StockChart Name="test" Visibility="Visible" PeriodSelectorVisibility="Hidden" IsEquallySpaced="False" Margin="12"> 
     <c:StockChart.Charts> 
      <c:Chart PlotAreaBorderBrush="{StaticResource TassBlue}" PlotAreaBorderThickness="1"> 
       <c:Chart.DateTimeAxis> 
        <c:DateTimeAxis ValuesEnabled="True" Stroke="Transparent" StrokeThickness="0" /> 
       </c:Chart.DateTimeAxis> 
       <c:Chart.LeftValueAxis> 
        <c:ValueAxis ValuesFormatString="0°" Stroke="Transparent" StrokeThickness="0" /> 
       </c:Chart.LeftValueAxis> 
       <c:Chart.Graphs> 
        <c:Graph GraphType="Line" BulletType="RoundOutline" BulletSize="8" LegendItemType="Value" LegendValueLabelText="Gemeten waarde: " LegendValueFormatString="0°" LegendPeriodItemType="Value" /> 
       </c:Chart.Graphs> 

       <c:Chart.Legend> 
        <c:Legend PositiveValueForeground="Black" NegativeValueForeground="Black" IsDateVisible="True" HideDateOnPeriod="False" /> 
       </c:Chart.Legend> 
      </c:Chart> 
     </c:StockChart.Charts> 

     <c:StockChart.DataSets> 
      <c:DataSet Brush="{StaticResource TassMagenta}" ItemsSource="{Binding PerformedAnalysis}" DateMemberPath="Date" ValueMemberPath="Angle" /> 
     </c:StockChart.DataSets> 
    </c:StockChart> 
</Grid> 

customc制御がamCharts(amCharts website)からStockChartです。

ありがとうございます!

のJeroen Corsius

アップデート1: だから、カスタムコントロールを含むグリッドは 'NaNの' の幅と高さを持ちます。グリッドの幅と高さの設定は何も変わりません。

アップデート2: Iは、次のいずれかの方法でグラフのリフレッシュをトリガすることを試みた:

  • base.InvalidateVisual()。
  • base.UpdateLayout();
  • grid.UpdateLayout();
  • grid.InvalidateVisual();
  • Chart.Focus();
  • Chart.UpdateLayout();
  • Chart.InvalidateVisual();
  • Chart.Refresh();

これらの結果はまったくありません。

アップデート3: ボタンをクリックし、イベントのChart.Refresh();を行い、チャートが表示されます。

+0

使用しているウィンドウの例を表示できますか? –

+0

MVVMを使用しているので、上記のコードはMainWindow.xamlのItemsControlにロードされます。 '' –

+0

Aあなたのデータ型は? –

答えて

2

チャートに次のイベントを追加してみてください。Loaded="Chart_Loaded"、イベントハンドラに次のルールを追加してください:Chart.Refresh();

幸運を祈る!

+0

作品、私が持っていると思いますそれと一緒に行く.. –

2

snoopを使用して、ビジュアルツリーを検査し、ツリーが壊れている場所を確認します。

+0

私はSilverlightのスパイを使用しました。私はあなたの答えが好きです。 +1 – OmegaMan

+0

私はビジュアルツリーで問題を見つけることができません。ツリービューのカスタムコントロール(スヌープから)をクリックすると、それも私のアプリケーションに表示されます。 –

+0

ライセンスの問題のようです。商用利用のコントロールはありますか? - もしそうなら、licxファイルをUIプロジェクトに組み込みましたか? –

0

カスタムコントロールまたはそれを含むもので、最小幅が0に設定されていないことを確認してください。スタジオまたはブレンドでminwidth = 0がデフォルトとして追加されたとき、Silverlightでまったく同じことが起こりました。

+0

私はそのページにminWidthのセットを持っていませんが、チップのおかげです。 –

関連する問題