2009-06-25 2 views
2

私はWPFコントロールの一部だけを再レイアウトしたいと思っています。wpfコントロールの一部のみを再構築します。出来ますか?

は今、私はこの問題はない行うことができます(具体的には、私はスクロールバー大きめにスクロールボタンを作りたいです)。私はデフォルトスタイルを抽出しました。必要な調整を行い、変更されたスタイルをアプリケーションに含めました。

問題は、コントロールテンプレート全体を置換スタイルに含めなければならないことです。変更するのは2つの値です。

<Setter Property="Control.Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="ScrollBar"> 
     <Grid Background="{TemplateBinding Panel.Background}" SnapsToDevicePixels="True"> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}" /> 
      <ColumnDefinition Width="1E-05*" /> 
      <ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}" /> 
      </... etc 

私はちょうど私の質問はこれである50

に列の定義にMaxWidthプロパティを変更したい:私は他のすべてを含めることなく、テンプレートにこの微調整を行うことができます方法はありますか?私はまだコントロールテンプレートの他のすべての部分をデフォルトのように動作させたい。この場合

答えて

4

テンプレートを差し伸べおよびリソースから値をつかむため、あなたは、ことができるようになります。テンプレートは値をハードコーディングされていた場合

<ScrollBar xmlns:sys="clr-namespace:System;assembly=mscorlib"> 
    <ScrollBar.Resources> 
     <sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}">50</sys:Double> 
    </ScrollBar.Resources> 
</ScrollBar> 

、あなたは運が悪いだろう。

+0

ファンタスティック。ニースのケント。 –

+0

クールなチップ、それはおそらく私のためにも有用であることがわかります:) –

関連する問題