Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Grid width should be calculated as </p> <pre><code>grid1.Width = (scrollViewer1.ViewportWidth / 3) * grid1.ColumnDefinitions.Count; grid1.Height = (scrollViewer1.ViewportHeight / 2) * grid1.RowDefinitions.Count; </code></pre> <p>This seemed to work for me:</p> <p>XAML:</p> <pre><code>&lt;DockPanel&gt; &lt;ListBox Width="150" DockPanel.Dock="Left" BorderBrush="AliceBlue" BorderThickness="2"&gt; &lt;Button Name="AddColumn_Button" Width="100" Height="25" Content="Add Column" Click="AddColumn_Button_Click" Margin="5"/&gt; &lt;Button Name="AddRow_Button" Width="100" Height="25" Content="Add Row" Margin="5" Click="AddRow_Button_Click" /&gt; &lt;/ListBox&gt; &lt;ScrollViewer Name="scrollViewer1" BorderBrush="AliceBlue" BorderThickness="2" SizeChanged="scrollViewer1_SizeChanged" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="1"&gt; &lt;Grid Name="grid1" ShowGridLines="True" &gt; &lt;Grid.RowDefinitions&gt; &lt;RowDefinition /&gt; &lt;RowDefinition /&gt; &lt;/Grid.RowDefinitions&gt; &lt;Grid.ColumnDefinitions&gt; &lt;ColumnDefinition /&gt; &lt;ColumnDefinition /&gt; &lt;ColumnDefinition /&gt; &lt;/Grid.ColumnDefinitions&gt; &lt;/Grid&gt; &lt;/ScrollViewer&gt; &lt;/DockPanel&gt; </code></pre> <p>CODE BEHIND:</p> <pre><code> private void scrollViewer1_SizeChanged(object sender, SizeChangedEventArgs e) { SizeGrid(); } private void AddColumn_Button_Click(object sender, RoutedEventArgs e) { ColumnDefinition gridColN = new ColumnDefinition(); grid1.ColumnDefinitions.Add(gridColN); SizeGrid(); } private void AddRow_Button_Click(object sender, RoutedEventArgs e) { RowDefinition row = new RowDefinition(); grid1.RowDefinitions.Add(row); SizeGrid(); } private void SizeGrid() { grid1.Width = (scrollViewer1.ViewportWidth / 3) * grid1.ColumnDefinitions.Count; grid1.Height = (scrollViewer1.ViewportHeight / 2) * grid1.RowDefinitions.Count; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload