2010-10-21 27 views
2

我正在使用樣式表的WPF。在我的Style中,我一直在嘗試定製CheckBox的虛線焦點邊框的外觀。我需要的焦點邊界只能圍繞廣場而不是整個控制。WPF複選框樣式使焦點邊界表現不佳

我將我的樣式寬度設置爲15,並且虛線邊框是正確的,但不包圍正方形,它的邊到邊。

我已經包括了風格。

感謝您的幫助。

樣式表片段:

<Setter Property="Control.Template"> 
    <Setter.Value> 
     <ControlTemplate> 
      <Rectangle StrokeThickness="1" Stroke="Black" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 

回答

1

並沒有太大變化,但我認爲它看起來不錯

<Style x:Key="MyFocusVisual"> 
    <Setter Property="Control.Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Rectangle StrokeThickness="1" Margin="-1,1,-1,1" Stroke="Black" HorizontalAlignment="Left" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Canvas> 
    <CheckBox Canvas.Left="100" Canvas.Top="100" TabIndex="0" Content="Content1" FocusVisualStyle="{DynamicResource MyFocusVisual}"/> 
    <CheckBox Canvas.Left="100" Canvas.Top="120" TabIndex="1" Content="Content2" FocusVisualStyle="{DynamicResource MyFocusVisual}"/> 
</Canvas> 
+0

感謝您的幫助! – SetiSeeker 2010-10-21 12:22:00

+0

不客氣:) – 2010-10-21 12:25:11

0

混合使用或使用的XamlWriter之一的techniques shown here得到CheckBox的控件模板。

看看「方形」是如何以及在哪裏定義的 - 我相信你會看到它有一個邊距和/或填充和/或其他格式應用於它。

在這一點上,您可以使用該信息來實現您的風格。從你的代碼片段不清楚你是否實際上實現了CheckBox的ControlTemplate,但這可能是最簡單的。

哦,和FYI - 在WPF中,它們被稱爲ResourceDictionaries,而不是樣式表。