13

私はこのような「グリッド」を実行する必要があります。

ハーモニックテーブル ハーモニックテーブル

リスト内のすべての奇数の音符が一番下に移動するListViewwithを作成しようとしています...ItemsSource="List<Note>"

ListView正しいコントロールですか?

次のオブジェクトの近くにある面で正確な六角形を描画するにはどうすればよいですか?

編集:六角形の描画が解決されました...これはxamlです:

<Path d:LayoutOverrides="None" 
      d:LastTangent="0,0" Stroke="Blue" Fill="Red" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
      Margin="0" Width="100" Height="100" x:Name="Path" 
  Stretch="Fill" 
      Data="M8.660254,0 L17.320508,5 17.320508,15 8.660254,20 0,15 0,5 8.660254,0 z"/>
4

2 に答える 2

7

メモのコンテナは、アイテムを選択する必要がItemsControlある場合はまたはになります。次に、六角形の描画を含める場所をListBox使用して、アイテムにテンプレートを提供します。カスタムリストボックスレイアウトListBox.ItemTemplateに関する優れたチュートリアルがあります。

この時点で、ListBoxがデフォルトで表示するように、六角形が上下に表示されます。特別なレイアウトを取得するには、を変更する必要がありますListBox.ItemPanel。ここでは2つの可能性があります。

  • Canvas絶対測位をサポートするパネルを使用します。この場合、アイテムには、それらを配置するために使用するXプロパティとYプロパティが必要です。
  • または、カスタム座標系(たとえば、音符名+オクターブ番号)をXとYに変換できるPanel、おそらくに基づいたカスタムを作成しCanvasます。少し難しいですが、はるかに再利用可能です。CodeProjectのカスタムパネルの例。
于 2010-12-06T08:35:29.397 に答える
2

HexGrid:CodeProjectの記事

HexGrid:GitHubリポジトリ

考えられる解決策の重要なコンポーネントは、六角形の要素を配置できるWPFパネルです(標準のパネルは長方形の子要素で動作します)。私のHexGridプロジェクトを見てください(ここに投稿するには大きすぎます)。その中心的な部分は(子要素をハニカムパターンに配置するHexGridWPF )です。子要素はs(六角形のContentControls)Panelで表されます。すぐに使用できる16進選択のサポートを提供する(HexGridパネルのHexItemコンテナー内のアイテムを表示するセレクターItemsControl)HexItemもあります。HexList

使用例:

<hx:HexList Name="HexColors" Orientation="Vertical"
            Grid.Row="1"
            Padding="10"
            SelectedIndex="0"
            Background="{Binding Path=SelectedItem.Background, RelativeSource={RelativeSource Self}}"
            RowCount="5" ColumnCount="5">
    <hx:HexItem Grid.Row="0" Grid.Column="1" Background="#006699"/>
    <hx:HexItem Grid.Row="0" Grid.Column="2" Background="#0033CC"/>
    <hx:HexItem Grid.Row="0" Grid.Column="3" Background="#3333FF"/>
    <!--...-->
    <hx:HexItem Grid.Row="4" Grid.Column="1" Background="#CC9900"/>
    <hx:HexItem Grid.Row="4" Grid.Column="2" Background="#FF3300"/>
    <hx:HexItem Grid.Row="4" Grid.Column="3" Background="#CC0000"/>
</hx:HexList>

16進カラーセレクター

于 2017-07-21T21:18:05.233 に答える