WPF קינון פקדים בראש שורה בדטה-גריד
-
הקישור שהבאת היה מצויין.
הנה דרך קלה ליצור טמפלט כמו שהובאה שם:
כתוב בתוך הXAML שלך במקום פנוי את השורה הזאת:<DataGridRowHeader />
בחלונית Document Outline תקליק בימיני על האלמנט הזה DataGridRowHeader,
לחץ על Edit Template ואז Edit a Copy.
בתיבת הדו שיח בחר בDefinen In בApplication.
אחרי היצירה מחק מהשורה הראשונה את הx:Key עם הערך.
לאחמ"כ אתר את השורה הזאת:<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
בסוף השורה החלף אתCenter לTop.
כעת תוכל למחוק את האלמנט DataGridRowHeader הריק שיצרת.
פורסם במקור בפורום CODE613 ב31/12/2013 15:49 (+02:00)
-
זה לא סותר תשתמש בשתיהם...
הנה הXAML:
<Style xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" TargetType="{x:Type DataGridRowHeader}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridRowHeader}"> <Grid> <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" IsSelected="{TemplateBinding IsRowSelected}" Orientation="Horizontal" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}"> <StackPanel Orientation="Horizontal"> <ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Top"/> <Control SnapsToDevicePixels="false" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Visibility="{Binding (Validation.HasError), Converter={StaticResource bool2VisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"/> </StackPanel> </Themes:DataGridHeaderBorder> <Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Top"/> <Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Bottom"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
תדביק את זה בApplication.xaml כך זה יחול על הכל בכל.
פורסם במקור בפורום CODE613 ב02/01/2014 16:48 (+02:00)
-
@דוד ל.ט.
Application.xaml
מדובר בפרוייקט DLL ואין שם את זה, יש איזו חלופה?
בנתיים שמתי בתוך הUSER FORM ואלו השגיאות שקיבלתי:
The resource "bool2VisibilityConverter" could not be resolved.
The resource "RowHeaderGripperStyle" could not be resolved.פורסם במקור בפורום CODE613 ב02/01/2014 17:58 (+02:00)
-
רפרנס ל PresentationFramework.Aero וניימספייס כבר הוספתי בתחילה ולכן לא היו אלא רק שני שגיאות שציינתי.
פורסם במקור בפורום CODE613 ב02/01/2014 19:44 (+02:00)
-
מקווה שכעת טוב.
<Style TargetType="{x:Type DataGridRowHeader}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridRowHeader}"> <Grid> <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" IsSelected="{TemplateBinding IsRowSelected}" Orientation="Horizontal" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}"> <StackPanel Orientation="Horizontal"> <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Top"/> <Control SnapsToDevicePixels="False" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGridRow}}}"> <Control.Visibility> <Binding Path="(Validation.HasError)" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type DataGridRow}}"> <Binding.Converter> <BooleanToVisibilityConverter/> </Binding.Converter> </Binding> </Control.Visibility> </Control> </StackPanel> </Themes:DataGridHeaderBorder> <Thumb x:Name="PART_TopHeaderGripper" VerticalAlignment="Top"> <Thumb.Style> <Style TargetType="{x:Type Thumb}"> <Setter Property="Height" Value="8"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="Cursor" Value="SizeNS"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Thumb}"> <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> </ControlTemplate> </Setter.Value> </Setter> </Style> </Thumb.Style> </Thumb> <Thumb x:Name="PART_BottomHeaderGripper" VerticalAlignment="Bottom"> <Thumb.Style> <Style TargetType="{x:Type Thumb}"> <Setter Property="Height" Value="8"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="Cursor" Value="SizeNS"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Thumb}"> <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> </ControlTemplate> </Setter.Value> </Setter> </Style> </Thumb.Style> </Thumb> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
פורסם במקור בפורום CODE613 ב05/01/2014 13:23 (+02:00)