ورود

View Full Version : سوال: مشکل در ارث بری استایل DataGridColumnHeader از استایل پیشفرض wpf?



mahboube
پنج شنبه 30 شهریور 1391, 12:35 عصر
سلام دوستان.
من یک style برای ColumnHeader دیتا گرید ساختم که میخوام property هایی که ست نمیشه تو این استایل از استایل پیشفرض DataGridColumnHeader گرفته شه.از BasedOn هم استفاده میکنم ولی فایده نداره.این استایلم:



< Style TargetType="{x:Type DataGridColumnHeader}" x:Key="ColumnHeaderStyle" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<TextBlock Grid.Column="1" Grid.Row="0" Text="{TemplateBinding Content}" HorizontalAlignment="Center">
</TextBlock>
......
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

مهدی فرزاد
پنج شنبه 30 شهریور 1391, 16:54 عصر
سلام
منظور رو متوجه نمیشم! من هرچی استایل ساختم تمام خواص کنترل مورد نظر رو داره. بیشتر توضیح بدید
یا فایل رو ضمیمه کنید ببینم دقیقا جریان چیه

Amir Oveisi
پنج شنبه 30 شهریور 1391, 17:23 عصر
شما Template اش رو دارید تغییر میدید و تو این Template فقط یک TextBlock دارید. هر Template ای فقط اون آیتم هایی رو داره که شما صریحا مشخص میکنید. style شما از style پیشفرض ارث برده و مشکلی نداره، اما شما مقدار Template رو override کردید و باید هر چیزی که در Template لازم دارید (مانند trigger ها و ...) خودتون تعریف کنید.

mahboube
شنبه 01 مهر 1391, 08:39 صبح
آره.میدونم مشکل از Template.ولی خب اونطوری هم که سخت میشه!من اصلا وقت ندارم الان.
چه جوریه با اینکه استایل ها رو دیگه ست نمیکنه ولی بعضی چیزا مثل sort رو Column هاکار میکنه ولی این امکان بزرگ کوچک کردنشون (با موس)رو دیگه نداره؟!
باید یه راهی داشته باشه بدون اینکه همه چیز رو لازم باشه از اول بنویسی!

پ.و.چه جوری میشه اینجا پست پاک کرد؟

mahboube
شنبه 01 مهر 1391, 09:58 صبح
سلام
منظور رو متوجه نمیشم! من هرچی استایل ساختم تمام خواص کنترل مورد نظر رو داره. بیشتر توضیح بدید
یا فایل رو ضمیمه کنید ببینم دقیقا جریان چیه

آقای فرزاد اگه این استایلی که بالا گذاشتم رو برای ColumnHeaderStyle ست کنید،میبینید که اصلا دیگه امکانات هدر معمولی مثلا بزرگ کوچیک کردن رو ندارید.