ورود

View Full Version : ارث بردن یک style از style دیگر



iranrose63
شنبه 30 مهر 1390, 09:06 صبح
من دوتا style دارم به شکل زیر


<Style x:Key="baseStyle" TargetType="{x:Type Window}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<ContentPresenter Content="{TemplateBinding Tag}"></ContentPresenter>
<TextBlock Grid.Row="1">base style</TextBlock>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

<Style x:Key="style1" TargetType="{x:Type Window}" BasedOn="{StaticResource baseStyle}">
<Setter Property="Tag">
<Setter.Value>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock>style1</TextBlock>
<ContentPresenter Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=Conten t}"></ContentPresenter>
</Grid>
</Setter.Value>
</Setter>
</Style>


وقتی style ویندو را style1 قرار میدم دوتا مشکل برام پیش میاد
1- وقتی فرم اولم رو باز میکنم مشکلی نیست ولی وقتی فرم دوم رو باز میکنم فرم اولم سفید میشه وکلیه عناصرش پاک میشن
2- من یکسری command تعریف کردم برای basestyle ولی توی فرم هام اونها کار نمی کنن

چه طوری میتونم یه basestyle تعریف کنم برای window و چند style دیگه که از style اولم استفاده کنن؟

Amir Oveisi
جمعه 06 آبان 1390, 15:01 عصر
شما این style ها رو کجا تعریف کردید؟ تو App.Resources‌؟ یا جای دیگه؟

iranrose63
یک شنبه 08 آبان 1390, 11:05 صبح
استایل ها رو تو دوتا resourcedictionary تعریف کردم و هرجا لازم بوده merg کردم