1. 程式人生 > >WPF TabIndex預設樣式修改:去掉預設虛線框、自定義樣式(Button控制元件為例)

WPF TabIndex預設樣式修改:去掉預設虛線框、自定義樣式(Button控制元件為例)

去掉Tab選中預設虛線框

Tab鍵切換時,被選控制元件自動存在虛線框,有時候為了介面美觀,這個虛線框就顯得比較麻煩。廢話不多說,下面是方法。

<Window.Resources>
    <Style x:Key="MeyFocusVisual" TargetType="{x:Type Button}" >
         <!--去掉預設的Tab選擇虛框-->
         <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
     </Style>
</Window.Resources>
...
 <Button Width="200" Height="20" Style="{StaticResource MeyFocusVisual}" >你怎麼按Tab也不會出現虛線框了</Button>
 <Button Width="200" Height="20" Style="{StaticResource MeyFocusVisual}" >就是不出來</Button>

很簡單是吧。

自定義Tab選中控制元件樣式 

去掉預設樣式很簡單,設定完屬性就好了。愛動手的我們需要想到,在某些特定的場景需求下,我們需要自定義一些比較炫酷選中效果,那需要怎樣實現呢?

相信聰明的小寶貝已經想到了,那就是使用WPF強大的Control.Template(控制元件模板)。下面直接上程式碼。

<Window.Resources>
      <!--自定義tab選中邊框-->
        <Style x:Key="MeyFocusVisual">  
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Rectangle Margin="-2" StrokeThickness="5" Stroke="Red" StrokeDashCap="Triangle"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
</Window.Resources>
...
 <Button Width="200" Height="20" Style="{StaticResource MeyFocusVisual}" >雖然很難看</Button>
 <Button Width="200" Height="20" Style="{StaticResource MeyFocusVisual}" >但是不一樣了</Button>

快去試試,看看有什麼效果呢!

總結

WPF的Template(模板)是非常強大,基本上能滿足你各式各樣、花裡胡哨的介面效果需求。