0

私はこれに似たグラフを作成しようとしていますhere

次のような xaml コードがあります。

<Border Grid.Row="1" Margin="0 4 0 0" Background="White" BorderBrush="#FFD6D4D4" BorderThickness="0 0 1 1">
            <Grid>
                <Border BorderThickness="1 1 0 0" BorderBrush="#D6D6D6" />

                <telerik:RadDiagram x:Name="diagram" GraphSource="{Binding GraphSource}"
                            ScrollViewer.HorizontalScrollBarVisibility="Visible"
                            ScrollViewer.VerticalScrollBarVisibility="Visible"
                            Zoom="{Binding ZoomFactor, Mode=TwoWay, Source={StaticResource repGpDataInstance}}" Height="800" />
            </Grid>
        </Border>

私のコードビハインドでは、次のことを行います:(コンポーネントを初期化した後...など)

this.treeLayout.Layout(this.diagram, mymodel.ChildTreeLayoutViewModel.CurrentLayoutSettings);

しかし、レイアウト タイプが TreeDown に設定されていても、すべてのノードが重なり合っており、ツリー構造が表示されません。どうすればこれを正しい方法で行うことができますか? を通じて提供されるノードのツリー構造が必要ですObservableCollection<Object>

4

1 に答える 1

1

基本的に、このような問題には 2 つのオプションがあります。

  1. シェイプのデフォルトの幅と高さを設定するシェイプのスタイルを追加します。これでシナリオがうまく満たされない場合:
  2. Dispatcher.BeginInvoke でレイアウトを呼び出してみてください

Dispatcher.BeginInvoke(() => this.treeLayout.Layout(...)

于 2013-07-16T07:05:03.150 に答える