Это приводит к той же самой проблеме, но не может быть той же самой точной причиной. Тем не менее, если мы сможем решить эту проблему, это может дать подсказку по вашей проблеме.
</p>
<p></p>
<pre><code><Grid Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="3*" />
<RowDefinition Height="3*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Background="PaleGoldenrod" />
<Label Grid.Column="1" Grid.Row="0" Background="White" />
<Label Grid.Column="2" Grid.Row="0" Background="PaleGoldenrod" />
<Label Grid.Column="0" Grid.Row="1" Background="White" />
<!-- This is in the significant cell -->
<Label Grid.Column="1" Grid.Row="1" x:Name="SizeChangeLabel" Background="PaleGoldenrod">
Watch this cell
</Label>
<Label Grid.Column="2" Grid.Row="1" Background="White" />
<Label Grid.Column="0" Grid.Row="2" Background="PaleGoldenrod" />
<Label Grid.Column="1" Grid.Row="2" Background="White" />
<Label Grid.Column="2" Grid.Row="2" Background="PaleGoldenrod" />
<Button x:Name="ReduceContentSize" Grid.Row="3" Grid.Column="0" Click="ReduceContentSize_Click">Reduce</Button>
<Button x:Name="IncreaseContentSize" Grid.Row="3" Grid.Column="1" Click="IncreaseContentSize_Click">Increase</Button>
<TextBlock Grid.Row="3" Grid.Column="2" Foreground="White">
The window is black
</TextBlock>
</Grid>
События щелчка настраивают MinWidth метки в центральной ячейке. Когда вы поднимаете его, вы получаете строки, которые, как я полагаю, совпадают с вашей проблемой.
</p>
<pre><code>private const double _sizeChangeAmount = 150;
private void IncreaseContentSize_Click(object sender, RoutedEventArgs e)
{
SizeChangeLabel.MinWidth = SizeChangeLabel.ActualWidth + _sizeChangeAmount;
SizeChangeLabel.MinHeight = SizeChangeLabel.ActualHeight + _sizeChangeAmount;
}
private void ReduceContentSize_Click(object sender, RoutedEventArgs e)
{
if (SizeChangeLabel.MinWidth > 150)
SizeChangeLabel.MinWidth = SizeChangeLabel.ActualWidth - _sizeChangeAmount;
if (SizeChangeLabel.MinHeight > 150)
SizeChangeLabel.MinHeight = SizeChangeLabel.ActualHeight - _sizeChangeAmount;
}
Это разумное приближение, которое может помочь привести к решению?