2013-04-22 1 views
0

Ниже кода будут показаны тонкие линии между черепичными прямоугольниками на телефоне Windows. Я попытался установить UseLayoutRounding в true, но, похоже, ничего не делает. Есть более тонкие линии, когда код запускается с помощью устройства (lumina 920 в моем случае), а не эмулятора, но у эмулятора 720p, похоже, больше проблем с этим. Есть ли простое свойство, которое я пропустил, это может исправить это? Я использую масштабирование прямоугольника до 1.1 прямо сейчас, чтобы скрыть строку, но не элегантное решение, особенно если прямоугольники становятся полупрозрачными, тогда на перекрываемой области есть яркие пятна.Тонкие линии появляются между прямоугольниками, когда элемент управления сеткой используется для их склеивания для окна телефона.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" UseLayoutRounding="True" > 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Rectangle Fill="White" Grid.Row="0" Grid.Column="0" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="1" Grid.Column="0" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="2" Grid.Column="0" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="0" Grid.Column="1" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="1" Grid.Column="1" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="2" Grid.Column="1" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="0" Grid.Column="2" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="1" Grid.Column="2" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="2" Grid.Column="2" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="3" Grid.Column="0" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="3" Grid.Column="1" StrokeThickness="0" /> 
    <Rectangle Fill="White" Grid.Row="3" Grid.Column="2" StrokeThickness="0" /> 
</Grid> 

thin lines between grids

+0

возможно дубликат [Странное поведение дисплея Windows Phone 8 устройств в различных разрешениях (WVGA, WXGA, и 720P)] (HTTP : //stackoverflow.com/questions/14605003/strange-display-behaviour-of-windows-phone-8-device-in-different-resolutionswvg) –

+0

Готовы ли вы поделиться снимком экрана, описываемым вами быстрый визуальный для нас, людей, которые не хотят загружать wp8 proj/emulator, чтобы понять, что вы имеете в виду? –

ответ

1

Если вы видите это на WXGA (Nokia 920) и 720p (HTC 8X), но не на WVGA (Nokia 820), то это результат с коэффициентом кратномасштабной шкалы система. В WP8 все экраны имеют 480 логических пикселей в ширину, и мы применяем множитель для каждого разрешения (1,5 для 720p, 1,6 для WXGA). Если вам нужен макет, чтобы быть совершенным, у вас есть несколько вариантов:

  • Использование отдельного XAML для проблемных резолюций
  • Используйте номера, что вокруг в том же направлении, при умножении 1.0, 1.5 и 1.6.
  • Установите ваши ширины на основе значения ScaleFactor

Я признаю, что ни один из них не является идеальным, но в зависимости от ваших потребностей, иногда небольшое изменение значений может исправить любые вопросы.

В статье вы можете прочитать, что дает некоторую информацию об этом можно найти здесь: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974%28v=vs.105%29.aspx