Reputation: 881
I am trying to make a simple login form with rounded corners. Below is a screenshot of the form:
There is a line segment at the bottom; it is transparent. Please show me how I can change my XAML to get rid of this line.
Here is my XAML:
<Window x:Class="Login"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Login" WindowStyle="None" AllowsTransparency="True" Background="Transparent" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="194" d:DesignWidth="358" SizeToContent="WidthAndHeight">
<Border BorderBrush="#9DE5F5" BorderThickness="4" CornerRadius="8" Width="343">
<Grid Background="#9DE5F5" Width="337" ShowGridLines="False" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="108*" />
<ColumnDefinition Width="286*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="16" />
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Right" />
<Setter Property="Padding" Value="8" />
<Setter Property="Foreground" Value="Black" />
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="5,10,15,5" />
<Setter Property="FontSize" Value="16" />
</Style>
<Style TargetType="{x:Type PasswordBox}">
<Setter Property="Margin" Value="5,10,15,5" />
<Setter Property="FontSize" Value="16" />
</Style>
</Grid.Resources>
<TextBlock Grid.Column="0" Grid.Row="0" >Username:</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="1" >Password:</TextBlock>
<TextBox Grid.Column="1" Grid.Row="0" Name="txtUserName" Background="White" />
<PasswordBox Grid.Column="1" Grid.Row="1" Name="txtPassword" Background="White" PasswordChar="*" />
<Button Grid.Column="1" Grid.Row="2" HorizontalAlignment="Right" Margin="10,10,15,10" Width="80" FontWeight="Bold" FontSize="13" Background="SteelBlue">Login</Button>
<Button Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="10,20,5,10" Width="30" Background="Red" Foreground="White" >X</Button>
</Grid>
</Border>
Upvotes: 0
Views: 93
Reputation: 8907
Since the 4px border on the Border
is the same color as the Grid
you should just get rid of it.
If they are the same color, there usually are some visible lines where the transition from the border to the actual background happens like in this case.
I would fix it by setting the Background
on the Border
instead of the Grid
, and completely removing the BorderThickness
and BorderBrush
properties from the Border
.
Looks very fine on my computer :-)
<Border Background="#9DE5F5" CornerRadius="8" Width="343">
<Grid ShowGridLines="False">
....
</Border>
Upvotes: 0
Reputation: 1133
Adding a margin of -1 is a quick hack but gets rid of it.
<Grid Background="White" Width="337" ShowGridLines="False" Margin="-1">
Upvotes: 1