这是我的自定义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>
所以我想设置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
角落的任何建议吗?
答案 0 :(得分:3)
将以下内容添加到样式中,您的标签上会出现圆角。我随意将其设置为“3”,但你可以根据自己的需要设置它。
<Label Style="{StaticResource MyLabelStyle}"></Label>
将以上代码添加到windows.resources并在标签Style =“{StaticResource MyLabelStyle}”
中{{1}}
答案 1 :(得分:1)
您必须将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>
但最好的方法是设置默认的GroupBox
模板样式。