问题描述
如图,左边是设计视图,右边是实际运行的,不但高度不一致。而且中间黑色部分的上下端好像还多出了1px左右的透明区域,能透视窗口下方的内容。仔细检查了代码,没有写这部分透明的内容啊。application中的代码<Applicationx:Class="MES_Assisstant.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"StartupUri="Login.xaml"><Application.Resources><StyleTargetType="Button"><SetterProperty="OverridesDefaultStyle"Value="True"/><SetterProperty="Foreground"Value="White"/><SetterProperty="HorizontalAlignment"Value="Right"/><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="Button"><Grid><RectangleFill="Red"/><ContentPresenterMargin="205"/></Grid></ControlTemplate></Setter.Value></Setter></Style><StyleTargetType="TextBlock"><SetterProperty="OverridesDefaultStyle"Value="True"/><SetterProperty="Margin"Value="5"/></Style><StyleTargetType="Window"x:Key="MyWindowStyle"><SetterProperty="AllowsTransparency"Value="True"/><SetterProperty="WindowStyle"Value="None"/><SetterProperty="Background"Value="Transparent"/><SetterProperty="Foreground"Value="White"/><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="Window"><BorderBorderBrush="RoyalBlue"BorderThickness="1"><Grid><Grid.RowDefinitions><RowDefinitionHeight="auto"/><RowDefinitionHeight="*"/><RowDefinitionHeight="auto"/></Grid.RowDefinitions><BorderBackground="RoyalBlue"><Grid><TextBlockText="{TemplateBindingTitle}"VerticalAlignment="Center"HorizontalAlignment="Center"/><ButtonContent="X"Name="buttonClose"Click="buttonClose_Click"HorizontalAlignment="Right"/></Grid></Border><GridGrid.Row="1"Background="LightGray"><AdornerDecoratorMargin="0"><ContentPresenterMargin="0"/></AdornerDecorator></Grid><GridGrid.Row="2"Height="auto"Background="White"><TextBlockText="{BindingElementName=buttonClose}"Foreground="Blue"/><ResizeGripName="WindowResizeGrip"Visibility="Collapsed"IsTabStop="False"HorizontalAlignment="Right"VerticalAlignment="Bottom"></ResizeGrip></Grid></Grid></Border><ControlTemplate.Triggers><TriggerProperty="ResizeMode"Value="CanResizeWithGrip"><SetterTargetName="WindowResizeGrip"Property="Visibility"Value="Visible"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Application.Resources></Application>
窗口代码<Windowx:Class="MES_Assisstant.Login"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:MES_Assisstant"Title="Login"Height="240"Width="360"FontSize="14"WindowState="Normal"Style="{StaticResourceMyWindowStyle}"MouseMove="Window_MouseMove"FontFamily="MicrosoftYahei,MalgunGothic"ResizeMode="CanResizeWithGrip"><Window.Resources></Window.Resources><Grid></Grid></Window>
解决方案
解决方案二:
<RowDefinitionHeight="auto"/><RowDefinitionHeight="*"/><RowDefinitionHeight="auto"/>上下都自动,可能是设计和运行的时候根据内容自动调整引起的吧,它导致一系列的问题高度不一致是因为第一行的两个控件都设置了上下Margin="5"透明,可能只能用你的Window.Bg设置的Transparent来解释了,自动调整高度导致中间那行没有完全填充