WPF - Как заполнить окно квадратами - PullRequest
0 голосов
/ 27 декабря 2018

Привет, ребята, у меня есть приложение wpf, и я хочу создать сетку квадратов 100x100 и иметь возможность обрабатывать ее как обычный набор (List, Array и т. Д.) В своем коде;

Как я могсделать это в WPF без записи <Rectangle .../> 10000 раз?

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете попробовать использовать WrapPanel в сочетании с ItemsControl, чтобы сделать это:

<ItemsControl x:Name="RectanglesItemsControl">
    <ItemsControl.ItemsPanel>
       <ItemsPanelTemplate>
           <WrapPanel IsItemsHost="True"/>
       </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
         <DataTemplate DataType="myNamespace:MyType">
             <Rectangle Width="{Binding Width}" Height="{Binding Height}"/>
         </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

MyType будет простым классом со свойствами Width и Height, это будеттакже необходимо реализовать INotifyPropertyChanged.

Затем вы можете установить ItemsSource *1012* для своего списка или, что еще лучше, ObservableCollection<MyType>, чтобы зарегистрировать изменения коллекции:

RectangleItemsControl.ItemsSource = myLongCollectionFilledWithALotOfRectangles;

РЕДАКТИРОВАТЬ: Вы можете заменить WrapPanel на что угодно, вы также можете использовать <UniformGrid Rows="100" Columns="100" IsItemsHost="True"/>, чтобы иметь 100 строк и столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...