2017-06-23 18 views
1

円グラフのカスタムコントロールを作成しようとしていますが、未知数の円グラフが必要です。私は多分DrawingCodeと呼ばれるカスタムプロパティを作成することでこれを達成しようとしています。このコードはDrawingGroupによって変換され解釈される文字列になります。 DrawingGroup.ChildrenをTemplateBinding DrawingCodeにバインドしてコンバーターを使用することを望んでいましたが、文字列をGeometryDrawingsのリストに変換する方法がわかりません。どんな助けもありがとう!ジオメトリ描画量が不明な描画グループへのバインド

<ResourceDictionary 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="clr-namespace:WPFTest"> 


<Style TargetType="{x:Type local:PieChart}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:PieChart}"> 
       <Image> 
        <Image.Source> 
         <DrawingImage> 
          <DrawingImage.Drawing> 
           <DrawingGroup Children="{TemplateBinding DrawingCode}" /> 
          </DrawingImage.Drawing> 
         </DrawingImage> 
        </Image.Source> 
       </Image> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

答えて

1

あなたが直接DrawingImage.Drawingプロパティに結合するドローイング(例えばDrawingGroup)を、返すことができるあなたのコンバータ:

ここ

は私のPieChartコントロールのための一般的なを含むResourceDictionaryのです Canvas ItemsPanelように ListBoxを使う -
<DrawingImage Drawing="{Binding DrawingCode, 
    RelativeSource={RelativeSource AncestorType=TemplatedParent} 
    Converter={StaticResource YourConverter}}"/> 
+1

私が正しく理解している場合、GeometryDrawingsを含む子のリストを持つDrawingGroupをコンバーターに作成しますか? –

0

私は言うでしょう。このようにして、複数のアイテムから選択肢まで、ListBoxからすべての素晴らしいものを取得できます。

このアプローチの1つは、hereです。もちろん、stringを図面に変換する必要がありますが、この方法では複数のアイテムとその配置について心配する必要はありません。

関連する問題