为什么Visual Studio的设计器与我在运行时看到的相符?
我是WPF的新手,并使用Visual Studio(2015)的设计视图来创建示例应用程序。 在设计时,一切看起来都非常像我想要的:
但是当我运行该应用程序时,它看起来完全不同。
我发现一个类似但不完全相同的问题(运行时WPF窗口视图与Expression Blend的设计视图不匹配)与Blend中创建的布局在运行时不匹配。 和这个问题(设计模式和运行时不同),但涉及到动态资源。
我没有做任何聪明的事情,只是一个网格和控件。 我没有用模板修改任何外观。 我已经使用了拖放功能,所以我的网格可能有点草率...但我真的希望它匹配。
难道我做错了什么? 这似乎是疯狂的,设计师不匹配运行时...下面是我的代码。
<Window x:Class="Chap01_01.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Chap01_01"
mc:Ignorable="d"
Title="Customer" Height="160" Width="350" ShowInTaskbar="true" ResizeMode="NoResize" Topmost="True" WindowStartupLocation="CenterScreen">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="25"/>
<RowDefinition Height="100*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="87"/>
<ColumnDefinition Width="85"/>
<ColumnDefinition Width="43"/>
<ColumnDefinition Width="35"/>
<ColumnDefinition Width="94"/>
</Grid.ColumnDefinitions>
<Label Content="_First Name" Grid.Column="0" Grid.Row="0" Margin="5,5,5,5" Target="{Binding ElementName=firstName}" VerticalAlignment="Center" />
<TextBox x:Name="firstName" Grid.Column="1" Grid.Row="0" Margin="5,5,5,5" VerticalContentAlignment="Center" Grid.ColumnSpan="4"/>
<Label Content="_Last Name" Grid.Column="0" Grid.Row="1" Margin="5,5,5,5" Target="{Binding ElementName=lastName}" VerticalAlignment="Center" />
<TextBox x:Name="lastName" Grid.Column="1" Grid.Row="1" Margin="5,5,5,5" VerticalContentAlignment="Center" Grid.ColumnSpan="4"/>
<RadioButton x:Name="radioButton" Content="EU Citizen" Grid.Column="1" Margin="5,5,5,5" Grid.Row="2" VerticalContentAlignment="Center" Grid.ColumnSpan="2"/>
<RadioButton x:Name="radioButton2" Content="Non EU Citizen" Grid.Column="3" Margin="5,5,5,5" Grid.Row="2" VerticalContentAlignment="Center" Grid.ColumnSpan="2"/>
<Button x:Name="okay" Content="Okay" Grid.Column="4" HorizontalAlignment="Right" Margin="0,0,5,5" Grid.Row="3" VerticalAlignment="Bottom" Width="75"/>
<Button x:Name="cancel" Content="Cancel" Grid.Column="2" HorizontalAlignment="Right" Margin="0,0,0,5" Grid.Row="3" VerticalAlignment="Bottom" Width="75" Grid.ColumnSpan="2"/>
</Grid>
</Window>
我找不到任何可以说为什么......但我确实找到了一个字。
在窗口属性中添加SizeToContent =“WidthAndHeight”...在预览和调试中,我看起来很美味。
必须在设计视图中,维度的开始参考点与发布版本相比位于不同的位置。 我在C ++ / C#中遇到过类似的事情,我唯一的解决方法是测试几个小时并应用更正,最终使设计在修复发行版时显得不正确。
我希望有所帮助。
你需要确保这些情侣对匹配:
这里是DesignWidth和Width之间的区别,基本上都是设计者和实际运行时应用程序之一。
所有这些都应该在UserControl中设置。 看看你的UserControl Xaml或Window Xaml的最后一行,并添加缺少的内容+确保它们匹配。 还有祝你好运!
链接地址: http://www.djcxy.com/p/89707.html上一篇: Why Doesn't Visual Studio's Designer Match What I See At Runtime?