So this is my custom GroupBox
:
<Grid Width="550" Height="140" Margin="20,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border BorderThickness="1,1,1,0" BorderBrush="Gray" CornerRadius="5,5,0,0" >
<Label
Height="25"
Width="60"
HorizontalAlignment="Left"
Background="#FF7AA0CD"
BorderBrush="Gray"
BorderThickness="1"
Foreground="Gainsboro"
Content=" Options"
Margin="10,-18,0,0"/>
</Border>
<Border Grid.Row="1" BorderThickness="1,0,1,1" BorderBrush="Gray" CornerRadius="0,0,5,5">
<StackPanel Orientation="Vertical" Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Horizontal" Margin="10,0,0,0" >
<Label
Content="Interface: "
Margin="0,3,0,0"/>
<ComboBox
MaxDropDownHeight="110"
Style="{DynamicResource ComboBoxFlatStyle}"
ItemsSource="{Binding interfaces}"
Width="400"
Height="28"
SelectedIndex="1"
FontSize="12"
Margin="40,0,0,0"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10,2,0,0">
<Label
Content="Capture filter:"
Margin="0,3,0,0"/>
<TextBox
Name="tbSnifferFilter"
Width="399"
Height="28"
TextChanged="tbSnifferFilter_TextChanged"
LostFocus="tbSnifferFilter_LostFocus"
Margin="21,0,0,0">
<TextBox.ToolTip>
<TextBlock>
The expression selects which packets will be dumped.
<LineBreak />
If no expression is given, all packets on the net will be accepte,
<LineBreak />
Otherwise, only packets for which expression is `true' will be accepted.
</TextBlock>
</TextBox.ToolTip>
</TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10,3,0,0">
<Label
Content="Capture file:"
Margin="0,3,0,0"/>
<TextBox
Name="tbSnifferCaptureFile"
Width="365"
Height="28"
ToolTip="Capture file name."
TextChanged="tbSnifferFilter_TextChanged"
IsReadOnly="True"
Margin="29,0,0,0"/>
<Button
Name="btnSaveCaptureFile"
Content="..."
Width="32"
Height="28"
ToolTip="Select a file to which captured data will be wirtten."
Click="btnSaveCaptureFile_Click"
GotMouseCapture="btnSaveCaptureFile_GotMouseCapture"
LostMouseCapture="btnSaveCaptureFile_LostMouseCapture"
Margin="3,0,0,0"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10,3,0,0">
<Label
Content="Packet length:"
Margin="0,1,0,0"/>
<Controls:NumericUpDown
Name="nudSnoplen"
Minimum="0"
Maximum="65535"
Value="65535"
StringFormat="N0"
MinWidth="50"
HideUpDownButtons="True"
Width="20"
Height="28"
ToolTip="Length of the packet that has to be retained."
Margin="19,0,0,0" />
<Label
Content="bytes"
Margin="0,2,0,0"/>
<CheckBox
Name="cbPromiscuousMode"
Content="Promiscuous mode"
FontFamily="Ariel"
VerticalAlignment="Top"
IsChecked="True"
Height="25"
Margin="20,1,0,0">
<CheckBox.ToolTip>
<TextBlock>
In normal operation, an adapter only captures packets from the network that,
<LineBreak />
are destined to it, the packets exchanged by other hosts are therefore ignored.
<LineBreak />
Instead, when the adapter is in promiscuous mode it captures all packets,
<LineBreak />
whether they are destined to it or not.
</TextBlock>
</CheckBox.ToolTip>
</CheckBox>
</StackPanel>
</StackPanel>
</Border>
</Grid>
So i want to set my Label
CornerRadius
and i try to put this Label
inside another Border
but it seems that The property "Child" can only be set once.
Any suggestions how to round my Label
corner ?
So i want to set my Label
CornerRadius
and i try to put this Label
inside another Border
but it seems that The property "Child" can only be set once.
Any suggestions how to round my Label
corner ?
Add the following to your Style and you'll get rounded edges on your Label. I arbitrarily set it to "3" below, but you can set it to whatever your needs dictate.
<Window.Resources>
<Style x:Key="MyLabelStyle" TargetType="Label">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true"
CornerRadius="3">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Add the above code into windows.resources and in your label Style="{StaticResource MyLabelStyle}"
<Label Style="{StaticResource MyLabelStyle}"></Label>