Интервал Вопрос об операторе * для XAML с сетками - PullRequest
3 голосов
/ 05 ноября 2010

Итак, я просто хотел понять, почему это происходит в моем приложении WPF, так как кажется, что он добавляет «пробел» или слабую строку без моего желания ...

У меня есть следующий XAML

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication3.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
<Grid x:Name="LayoutRoot" ShowGridLines="False" Grid.Row="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>          
    </Grid.RowDefinitions>
    <Border Grid.Row="0"  CornerRadius="10,10,0,0" Height="10" Background="Black"/>
    <Border Grid.Row="1"  Background="Black">

    </Border>           
    <Border Grid.Row="2" CornerRadius="0,0,10,10" Height="10" Background="Black"/>
</Grid>
<StackPanel Grid.Row="1">
    <Button>Some Button</Button>
</StackPanel>
</Grid>

Что делает следующее окно ...

Window Pic

Проблема в том, что если вы внимательно посмотрите на разъем последнего ряда, вы увидите слабую серую линию ...

Faint Gray Line Pic

Если, однако, я заменим <RowDefinition Height="*"/> на внутренней сетке фиксированным размером пикселя (т.е. <RowDefinition Height="300"/>), линия исчезнет. Почему именно при использовании значения * кажется, что он добавляет эту "серую линию" / "пробел"?

Ответы [ 2 ]

4 голосов
/ 05 ноября 2010

Мне кажется, проблема в сглаживании

  1. Ваш эффект
  2. SnapsToDevicePixels = "True"
  3. UseLayoutRounding = "False"
  4. RenderOptions.EdgeMode = "Aliased" alt text
2 голосов
/ 05 ноября 2010

Мне кажется, это проблема округления макета.Если вы используете WPF 4, попробуйте установить UseLayoutRounding="true" на вашей внешней сетке.Иначе, посмотрите на SnapToDevicePixels.

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.uselayoutrounding.aspx

http://www.wpftutorial.net/DrawOnPhysicalDevicePixels.html

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