use*_*033 1 wpf styles groupbox
所以这是我的习惯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>
Run Code Online (Sandbox Code Playgroud)
所以我想设置我的Label CornerRadius,我试着把它Label放在另一个里面,Border但似乎有The property "Child" can only be set once.
任何建议如何绕过我的Label角落?
所以我想设置我的Label CornerRadius,我试着把它Label放在另一个里面,Border但似乎有The property "Child" can only be set once.
任何建议如何绕过我的Label角落?
将以下内容添加到您的样式中,您将在标签上获得圆形边缘。我在下面将其任意设置为“3”,但您可以将其设置为您需要的任何内容。
<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>
Run Code Online (Sandbox Code Playgroud)
将上面的代码添加到 windows.resources 和你的标签 Style="{StaticResource MyLabelStyle}"
<Label Style="{StaticResource MyLabelStyle}"></Label>
Run Code Online (Sandbox Code Playgroud)
你必须把你的Label放入Border
<Border BorderThickness="1,1,1,0"
BorderBrush="Gray"
CornerRadius="5,5,0,0">
<Border Margin="10,-18,0,0"
Background="#FF7AA0CD"
BorderBrush="Gray"
Height="25"
CornerRadius="5"
Width="60"
HorizontalAlignment="Left">
<Label BorderThickness="1"
Foreground="Gainsboro"
Content=" Options"/>
</Border>
</Border>
Run Code Online (Sandbox Code Playgroud)
但最好的方法是设置默认GroupBox模板的样式。