WPF: устранить прозрачность между ячейками сетки - PullRequest
1 голос
/ 06 ноября 2008

У меня есть Сетка в WPF. Сетка имеет прозрачный фон (обязательно), и каждая из ячеек может иметь разноцветный сплошной фон или, возможно, не иметь фона. Когда я помещаю произвольный контент в эти ячейки, когда две соседние ячейки имеют цветной фон (одинакового или разного цвета, это не имеет значения), часто (и непредсказуемо) разделяется тонкая прозрачная линия, позволяющая видеть сквозь сетку на этой линии.

Кто-нибудь знает, как это можно исправить?

Редактировать: хотел упомянуть об этом в моем вопросе, но я попытался включить SnapsToDevicePixels где угодно и где угодно, но безрезультатно.

Ответы [ 2 ]

1 голос
/ 06 ноября 2008

Это приводит к той же самой проблеме, но не может быть той же самой точной причиной. Тем не менее, если мы сможем решить эту проблему, это может дать подсказку по вашей проблеме.

</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; }

Это разумное приближение, которое может помочь привести к решению?

1 голос
/ 06 ноября 2008

Не видя никакого кода, я предполагаю, что вам нужно SnapsToDevicePixels для элементов в сетке.

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