2008-10-14 47 views
2

有沒有辦法使XAML屬性與它們所屬的元素的大小一起縮放?調整XAML屬性的大小

從本質上講,我有一個控制模板,我創建了太大的使用/主要是因爲我想使用不同大小的相同控件。問題是,我可以將控件大小設置爲自動(在ControlTemplate中),但是不會調整內在模板元素的屬性:例如,StrokeThickness保持爲10,而它應該變爲1.

它工作正常我在模板上應用了ScaleTransform,但是實際使用時會導致控件太小:width/height = Auto將控件的大小調整爲適當的大小,然後使用應用縮放轉換。所以我有一些不可擴展的控制。

我有點新的WPF,所以有可能做到這一點的簡單方法...

回答

1

你可以嘗試控制的寬度和高度綁定模板的寬度和高度內分別在運行時模板化控件。喜歡的東西:

<Button> 
    <Button.Template> 
     <ControlTemplate TargetType={x:Type Button}> 
      <Border Width="{TemplateBinding Property=ActualWidth}" 
        Height="{TemplateBinding Property=ActualHeight}"> 
       <ContentPresenter /> 
      </Border> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

注意,綁定源是FrameworkElement.ActualWidthFrameworkElement.ActualHeight模板化控制的性能。這些屬性包含控件在渲染後的寬度和高度,它可以與寬度高度屬性中指定的值不同。這是因爲這些值是在運行時最終計算的,並考慮了可視化樹中任何父控件的大小。

4

您的描述有點含糊,但聽起來好像您希望將Stretch的ViewBox設置爲Uniform作爲控件的根元素。

0

太糟糕了,您無法爲StackPanel,DockPanel,Grid或任何其他容器創建控件模板。

相關問題