Autor Beitrag
PhilS
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 05.09.07 12:24 
Hallo liebe Forumuser,

ich schlage mich seit ein paar Tagen mit WPF, Expression Blend und C# herum.
Mit ein paar Tutorials aus dem Internet und ein bisschen Code habe ich eine ListView gebaut in der Daten angezeigt werden.
Funktioniert gut und ich wollte nun die Kopfzeile etwas bearbeiten, farblich und mit einer Suchfunktion.
Geht auch wunderbar, nur ist das StackPanel-Element, indem die Überschrift der Spalte und die Sucheingabe sind, einfach viel zu klein...
Die Spalten passen sich ja automatisch dem größten Inhalt an nur habe ich es bis jetzt nicht geschafft das Panel so anzupassen das es die komplette Kopfzeilenbreite ausfüllt.

Sieht dann z.B. so aus:

user defined image

Ich müsste also die Breite des Panels irgendwo an die Breite der Spalten im Code anpassen...
Hat da jemand Erfahrung bzw kann mir jemand dabei helfen?

Mit freundlichen Grüßen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 05.09.07 12:31 
Zeig mal bitte Deinen XAML-Code. Normalerweise sollte es reichen, wenn man keine Width-Angabe macht, sondern den Margin entsprechend setzt. Dann sollte sich das Element an seinen Parent anpassen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
PhilS Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 05.09.07 13:11 
ausblenden volle Höhe XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
<UserControl
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="GUI.Projects.novaProWeb.XamlDataGrid"
  Width="488" Height="218">

<UserControl.Resources>
   <!-- Design eines Spaltenkopfes -->
   <DataTemplate x:Key="BlueHeader">
      <StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="64">
        <StackPanel.Background>
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF223B84" Offset="1"/>
            <GradientStop Color="#FF57A0F4" Offset="0.5"/>
            <GradientStop Color="#FF4B94EC" Offset="0.5"/>
          </LinearGradientBrush>
        </StackPanel.Background>
        <TextBlock   Text="{Binding}"  Foreground="White"   Height="32"   VerticalAlignment="Center" HorizontalAlignment="Stretch" />
        <TextBox      TextChanged="TextBox_TextChangedEventHandler" Background="{x:Null}" Foreground="White"  Height="32"  VerticalAlignment="Center" HorizontalAlignment="Stretch" />
    </StackPanel>
    
    </DataTemplate>
  
</UserControl.Resources>


  <ListView  ItemsSource="{Binding}" x:Name="ListView_ObjectList" MouseRightButtonDown="ListView_ObjectList_ColumnHeaderMouseRightButtonDownHandler" ContextMenuOpening="ListView_ObjectList_ColumnHeaderContextMenuOpening"  ContextMenuClosing ="ListView_ObjectList_ColumnHeaderContextMenuClosing"  MouseDoubleClick="ListView_ObjectList_MouseDoubleClick"  FontFamily="Courier New" PreviewMouseRightButtonDown="ListView_ObjectList_PreviewMouseRightButtonDown" BorderThickness="0,0,0,0">
    <!-- Design des Hintergrunds -->
    <ListView.Background>
            <LinearGradientBrush EndPoint="0.939,0.919" StartPoint="0.061,0.081">
              <GradientStop Color="#FFFFE07E" Offset="0"/>
              <GradientStop Color="#FFFFFAEA" Offset="1"/>
            </LinearGradientBrush>
    </ListView.Background>
    
    
    <!-- Design des Kopfes:Entweder pro Spalte über HeaderTemplate="{StaticResource BlueHeader}" oder für die ganze Tabelle mittels ColumnHeaderTemplate="{StaticResource BlueHeader}" -->
    <ListView.View>
      <GridView x:Name="GridView_ObjectList" >
            <GridViewColumn  />
            <GridViewColumn  />
      </GridView>
    </ListView.View>
    
    <!-- Design der Zeilen -->
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}"  >
          <Setter Property="Height" Value="24" />
          <Setter Property="Background" Value="#5EF4E057" />
          <Setter Property="Foreground" Value="#FF4B94EC"/>
          
      <!-- Wie soll sich das Design ändern wenn die Maus drüber fährt -->
          <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
              <Setter Property="Foreground" Value="DarkBlue" />
              <Setter Property="Background">
                <Setter.Value>
                  <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFC704" Offset="0.986"/>
                    <GradientStop Color="#FFF4E057" Offset="0.5"/>
                    <GradientStop Color="#FFF4E057" Offset="0.51"/>
                  </LinearGradientBrush>
                </Setter.Value>
              </Setter>
            </Trigger>
            
          </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>
    
    
  </ListView>
  
</UserControl>

Ich hoffe habe keine Änderungen dabei!
Bastle immer mal wieder rum um das Problem vielleicht zu lösen...

Moderiert von user profile iconChristian S.: Color- durch XML-Tags ersetzt