2010-06-28 350 views
7

我在WPF中有一個標籤,我想restyle因此它有圓角。WPF標籤設計

我有下面的代碼已經:

<Style TargetType="{x:Type Label}">   
    <Setter Property="Background" Value="Red"/> 
    <Setter Property="Margin" Value="2,2,2,2"/> 
    <Setter Property="BorderThickness" Value="2"/> 
    <Setter Property="BorderBrush" Value="Blue"/> 
    </Style> 

誰能請幫助我如何將一個角半徑添加到該標籤

千恩萬謝

回答

15

你需要改變控制標籤的模板以獲得圓角。 Label控件本身不公開CornerRadius屬性。

將以下內容添加到您的樣式中,您將在標籤上獲得圓角邊緣。我在下面任意設置它爲「3」,但你可以根據你的需要設定它。

<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> 
+0

非常好 - 謝謝 – Bruie 2010-06-29 07:44:16

3

使用Border元素會更簡單。

<Border CornerRadius="10" BorderThickness="2" BorderBrush="Blue" Background="Red" Margin="2"> 
    <Label Content="Lorem ipsum" /> 
</Border>