Удалите Grid
и DockPanel
и установите либо UniformGrid.Rows
, либо UniformGrid.Columns
, но не оба.Все, что вам нужно, это Window
, ScrollViewer
и UniformGrid
:
<Window>
<ScrollViewer>
<UniformGrid Name="gridx" Columns="7"/>
</ScrollViewer>
</Window>
И чтобы сделать это более идиоматическим способом WPF, у вас должно быть что-то вроде этого:
<Window>
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Programs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="7"/>
После этого вы выставите коллекцию Programs
из своего источника данных и, таким образом, автоматически создадите элемент для каждой установленной программы.