2013-03-29 3 views
5

http://i.stack.imgur.com/2gOLN.pngC# WPF отличается от IDE после отладки?

У меня возникли проблемы с различной внешностью в Blend/VS2012 IDE и в Debugging. В IDERectangle находится в центре, но когда он скомпилирован или отлажен, размер поля отличается. На мой взгляд, это происходит потому, что размер границы окна отличается. Я действительно хочу решить эту проблему. Какие-либо предложения?

Thank you.

XAML

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="202" Width="194"> 
<Grid HorizontalAlignment="Left" Height="171" VerticalAlignment="Top" Width="186"> 
    <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="151" Margin="10,10,0,0" Stroke="Black" VerticalAlignment="Top" Width="166"/> 
</Grid> 

Отредактировано XAML Код:

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="202" Width="194"> 
<Grid HorizontalAlignment="Left" Height="171" VerticalAlignment="Top" Width="186"> 
    <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Center" Height="151" Margin="10" Stroke="Black" VerticalAlignment="Center" Width="166"/> 
</Grid> 

результат тот же. Это проблема моего ПК?

+0

Можете ли вы предоставить код xaml? – Xelom

+0

Xelom, я добавил код xaml. Спасибо за Ваше внимание. – jn4kim

+0

Изменить маржировку на Margin = "10" и установить горизонтальное и вертикальное выравнивание для растягивания или центра. –

ответ

5

Ваша проблема здесь. Размер окна включает размер Chrome (граница окна и т. Д., Такие как кнопки close/max min).

Ваша сетка - это размер, который вы запросили, но он не соответствует размеру окна, который вы запросили.

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

Ширина: 202 Высота: 210

на Windows 8

Однако вы должны лучше иметь ваш размер окна устанавливается в SizeToContent="WidthAndHeight"

Пример:

<Window x:Class="WpfApplication4.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:WpfApplication4" 
     x:Name="window" 
     Title="MainWindow" 
     SizeToContent="WidthAndHeight"> 
<Grid HorizontalAlignment="Left" Height="171" VerticalAlignment="Top" Width="186"> 
    <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="151" Margin="10,10,0,0" Stroke="Black" VerticalAlignment="Top" Width="166"/> 
</Grid> 
</Window> 

Таким образом, вы не допускаете размеров Chrome, которые могут отличаться от разных версий Windows.

Вы также должны получить Snoop. Это помогает вам легко отлаживать такие проблемы. Он показывает красную рамку на элементе управления, когда вы наводите на него Shift + Ctrl, поэтому вы можете видеть, что Grid проходит мимо видимого окна, показывая фактическую компоновку элементов вашего пользовательского интерфейса.

Image

+0

Спасибо! Я действительно ценю твою помощь. – jn4kim

Смежные вопросы