對於我的應用程序,我有2個不同的左邊距和右邊距值。 (比方說27和64)xamarin表單從ResourceDictionary中獲取值
是否有可能從ResourcesDictionaty獲取這些值並將它們設置在我的XAML中。
例如
<StackLayout Margin="{Left1},0,{Right1},0">
</StackLayout>
對於我的應用程序,我有2個不同的左邊距和右邊距值。 (比方說27和64)xamarin表單從ResourceDictionary中獲取值
是否有可能從ResourcesDictionaty獲取這些值並將它們設置在我的XAML中。
例如
<StackLayout Margin="{Left1},0,{Right1},0">
</StackLayout>
可以在ResourceDictionary
它們指定爲雙值,並指他們在其他資源/風格或元素的水平本身。
樣本資源詞典
<ResourceDictionary>
<!-- namespace declaration
xmlns:sys="clr-namespace:System;assembly=System.Runtime" -->
<sys:Double x:Key="leftMargin">20</sys:Double>
<sys:Double x:Key="rightMargin">30</sys:Double>
<Thickness x:Key="MyMargin1"
Left="{StaticResource leftMargin}"
Right="{StaticResource rightMargin}"
Top="20"
Bottom="30" />
<Thickness x:Key="MyMargin2"
Left="{StaticResource leftMargin}"
Right="{StaticResource rightMargin}"
Top="5"
Bottom="15" />
</ResourceDictionary>
使用範例
<StackLayout>
<BoxView BackgroundColor="Blue" Margin="{StaticResource MyMargin1}" />
<BoxView HeightRequest="1" BackgroundColor="Black" />
<BoxView BackgroundColor="Red" Margin="{StaticResource MyMargin2}" />
<BoxView HeightRequest="1" BackgroundColor="Black" />
<BoxView BackgroundColor="Yellow">
<BoxView.Margin>
<Thickness
Left="{StaticResource leftMargin}"
Right="{StaticResource rightMargin}"
Top="30"
Bottom="10" />
</BoxView.Margin>
</BoxView>
<BoxView HeightRequest="1" BackgroundColor="Black" />
</StackLayout>
我不認爲這樣做單一數值會工作。但是,您可以結合整個Margin
的值在資源字典如下:
<ResourceDictionary>
<Thickness x:Key="MyMargin">27,0,64,0</Thickness>
</ResourceDictionary>
<StackLayout Margin="{StaticResource MyMargin}">
</StackLayout>
這是完美的!謝謝 – Dimitris