2013-03-05 58 views
0

當我將樣式設置爲Slider控件時,它會全部搞亂(我無法再移動滑塊並且卡住了)。造型滑塊使其無效

原代碼(它的工作原理):

<Slider IsThumbToolTipEnabled="True" SmallChange="10" Orientation="Horizontal" StepFrequency="10" Minimum="900" Maximum="2500" Value="1300" /> 

我得到的,它按預期工作:

I click to get the tooltip here

現在,如果我使用一個外部的樣式:

<Style x:Key="ELOSlider" TargetType="Slider"> 
     <Setter Property="IsThumbToolTipEnabled" Value="True"/> 
     <Setter Property="SmallChange" Value="10"/> 
     <Setter Property="Orientation" Value="Horizontal"/> 
     <Setter Property="StepFrequency" Value="10"/> 
     <Setter Property="Minimum" Value="900"/> 
     <Setter Property="Maximum" Value="2500"/> 
     <Setter Property="Value" Value="1300"/> 
</Style> 

...

<Slider Style="{StaticResource ELOSlider}" /> 

它搞砸了(滑塊被卡住,無法做任何事情):

I can't even move the slider

它承認的風格,否則它不會是900,但爲什麼不將滑塊出現是否正確?

我在做什麼錯?這真的令我困惑。

回答

1

我確實發現了這個問題。它看起來像造型引擎順序應用Setters

它在嘗試將Minimum設置爲900時必須失敗,因爲Maximum默認爲1。如果我把Setters反過來如下,它很好地工作。一種違反直覺的東西......特別是因爲沒有警告輸出(我期望900被完全拒絕,而不是把控制搞砸了......)

<Style x:Key="ELOSlider" TargetType="Slider"> 
    <Setter Property="Maximum" Value="2500"/> 
    <Setter Property="Value" Value="1300"/> 
    <Setter Property="Minimum" Value="900"/> 
    <Setter Property="IsThumbToolTipEnabled" Value="True"/> 
    <Setter Property="SmallChange" Value="10"/> 
    <Setter Property="Orientation" Value="Horizontal"/> 
    <Setter Property="StepFrequency" Value="10"/> 
</Style>