2017-04-09 13 views
0

WPFでカスタムシェイプを作成する方法は?たとえば、私は複数のシンボルを互いにつなぎ合わせてキャバス上に描画しようとしています。色を変えるにはそれぞれの記号が必要です。どのように色を変えることができるカスタムシェイプを作ってみましょうか?次の2つの形を作りたいとします。どのように私は下に提供ソリューションが楕円で動作し、彼らにWPFでプロパティを使用してカスタムシェイプを作成するには?

<Ellipse x:Name="theEllipse" 
       Height="89" 
       Width="82" 
       Fill="Black" 
       Canvas.Left="32" 
       Canvas.Top="75" /> 

<Ellipse x:Name="theEllipse" 
       Height="89" 
       Width="82" 
       Fill="Black" 
       Canvas.Left="32" 
       Canvas.Top="75" /> 

をカプセル化するために行くだろうが、 は、それが次の図では動作しません:

 <Line X1="10" 
       Y1="50" 
       X2="50" 
       Y2="50" 
       Stroke="Black" 
       StrokeThickness="2" /> 
     <Line X1="15" 
       Y1="55" 
       X2="45" 
       Y2="55" 
       Stroke="Black" 
       StrokeThickness="2" /> 

     <Line X1="20" 
       Y1="60" 
       X2="40" 
       Y2="60" 
       Stroke="Black" 
       StrokeThickness="2" /> 

答えて

1

あなたはBlendでそれを行うことができます。選択に

  1. オブジェクトで2つの楕円/図形を選択し、タイムラインウィンドウを右クリックし
  2. ゴーパスへ - >複合パス

を作りますenter image description here


アップデート2017年4月10日

あなたは、この操作は、すべての図形や線で作業する場合は、あなたの要素がCanvas、ないGridまたはStackPanelの内側にあることを確認する必要があります。要素の親コンテナは重要です。

したがって、3行の場合はCanvasの中にラップし、複合化パスオペレーションを再度実行してください。

<Canvas> 
    <Line X1="10" 
      Y1="50" 
      X2="50" 
      Y2="50" 
      Stroke="Black" 
      StrokeThickness="2" /> 
    <Line X1="15" 
      Y1="55" 
      X2="45" 
      Y2="55" 
      Stroke="Black" 
      StrokeThickness="2" /> 

    <Line X1="20" 
      Y1="60" 
      X2="40" 
      Y2="60" 
      Stroke="Black" 
      StrokeThickness="2" /> 
</Canvas> 

これは、後にどのように見えるかです:ところで

<Canvas> 
    <Path Data="M1,1 L41,1 M6.00001,6 L36,6 M11,11 L31,11" 
      Height="12" 
      Canvas.Left="9" 
      Stretch="Fill" 
      Stroke="Black" 
      StrokeThickness="2" 
      Canvas.Top="49" 
      UseLayoutRounding="False" 
      Width="42" /> 
</Canvas> 
+0

はただのラインで同じことを実行しようとしました、それは私がまさにそれをやっている –

+0

を動作しませんでした。私のすべてのライン要素はキャンバス内にあります。私は3つの行を選択し、それらを右クリックしてパス→複合パスを作成します。そして、彼らは1つの行に変わります。何が間違っているのかわからない –

+0

空の 'Page'や' UserControl'で試してみてください。おそらく他のいくつかのパネルが入り込んでいるかもしれません。 – Laith

関連する問題