0

WPF アプリケーションでは、フォルダーの場所から画像を使用してタイル (基本的にはボタン) のグリッドを表示したいと考えています。フォルダ内にはさまざまな数の画像が存在する可能性があるため、タイル/ボタンを動的に生成し、量に基づいてフォーマットする必要があります。これらは、マウス クリック イベントをトリガーできるボタンである必要があります。

私は C# と .NET に非常に慣れていないので、これを行うための最良の方法についての指示が欲しいです。これを WPF アプリケーションとして開始したので、テンプレートを使用することをお勧めしますか? または、背景画像を使用してフォーム ボタンを動的に作成することが簡単なオプションである場合は、それを試してみます。

4

2 に答える 2

1

おそらく、ListView などの ItemsControl が必要になるでしょう。残念ながら、WPF には GridView の実装しか含まれていませんが、ListView は、Windows ファイル エクスプローラーに表示されるすべてのビューをサポートすることを目的としています。Tiled ベースのビューの場合、ViewBase クラスをオーバーライドして、ListView の View プロパティに割り当てる必要があります。

何年も前に、私はあなたが望むものを示すサンプル コードを持っていました。

次のリンクには、MSDN のサンプルが含まれています: MSDN ListView.View のサンプル

方法: カスタム ビュー モードを作成する

Xceed DataGrid に CardView モードが組み込まれていることは知っています。無料版で利用できるかどうかはわかりません: Xceed WPF DataGrid ドキュメント

編集MSDN のサンプルを確認したところ、あなたが望むものに近いと思います。

于 2012-11-27T07:54:17.337 に答える
0

私は行きItemsControlます。X、Y、ImageUri などのプロパティを持つ、ボタンを表すクラスが必要です。生成されたボタンを を介して公開しObservableCollection、 にバインドしItemsSourceますItemsControlItemsPanelTemplate次に、グリッドに変更します。

        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Grid>                        
                    <!--Here go rows and columns definitions-->
                </Grid>
            </ItemsPanelTemplate>                
        </ItemsControl.ItemsPanel>

行と列の数が固定されている場合は、それらを XAML に直接追加できます。それ以外の場合は、コード ビハインドで実行時に生成します。配置のために追加ItemsContainerStyleします:

        <ItemsControl.ItemContainerStyle>
            <Style>
                <Setter Property="Grid.Row" Value="{Binding Y}" />
                <Setter Property="Grid.Column" Value="{Binding X}" />
            </Style>
        </ItemsControl.ItemContainerStyle>

ItemTemplateまた、表示ボタンを画像で覆う必要があります。その他のオプションは、Canvasor UniformGridasを使用することですItemsPanelTemplate(長所と短所の両方があります)。

于 2012-11-27T09:45:01.197 に答える