Hallo,
ich brauche ein Grid das horizontales scrollen erlaubt, allerdings
möchte ich die erste Spalte Fixieren.
Also das die erste Spalte immer sichtbar ist,
egal wie weit man nach links scrollt.
Leider gibt mir google keine richtige Antwort, darum
nun hier meine Frage.
Danke!
Hallo diego2k,
meinst du das DataGrid oder das Grid?
Beim DataGrid kannst du einfach FrozenColumnCount="1" setzen um die erste Spalte zu freezen und somit immer sichbar zu lassen.
Wenn du ein Grid meinst dann kannst du einfach zwei Spalten erstellen.
In der zweiten knallst du einen ScrollViewer dann hast du das gewünschte Ergebnis
Gruß
Michael
Nach rechts meinte ich natürlich ...
Danke werd ich gleich mal Probieren. 😃
Also ich bau grad sowas wie ein Gantt Diagramm, und da möchte ich natürlich in der
ersten Spalte ein paar Infos anzeigen ... Name etc.
und in die 2. Spalte kommt mein "Gantt-Row"-Controll der dann die Balken anzeigt.
Dh. die zweite Spalte wird sehr lange und auch wenn ich jetzt ganz nach hinten(rechts)
gescrollt habe, möchte ich immer noch den Namen etc. sehn....
So,
hatte nun Zeit zu gucken ...
Also ich meine hier "Grid" und ich will den Scrollviewer nicht für jede Zeile extra,
sondern einer für alle Zeilen.
Man kennt das aus Excel:
Ansicht - Fenster einfrieren - Erste Spalte einfrieren
danke
Nachtrag:
Ein Scrollviewer in der ColumnDefinition ist leider nicht erlaubt
ich hab nun etwas mit dem DataGrid probiert allerdings habe ich dort das Problem das mir
Controls in den Zellen nicht korrekt angezeigt werden.
D.h. sie werden mit erst dann angezeigt wenn ich doppelt auf die Zelle drauf klicke ...
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Height="Auto" Width="Auto" HorizontalAlignment="Stretch" Margin="12,21,12,12" AutoGenerateColumns="False"
Name="Gantt_Orientation" VerticalAlignment="Stretch" RowHeight="30"
HorizontalScrollBarVisibility="Visible" FrozenColumnCount="1"
VerticalScrollBarVisibility="Visible" HeadersVisibility="None" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="Bezeichnung" Binding="{Binding Path=name, ValidatesOnExceptions=True}" />
<DataGridTextColumn Header="GanttRow" Binding="{Binding Path=ID, ValidatesOnExceptions=True}"/>
<DataGridTemplateColumn >
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate >
<ContentPresenter Content="{Binding Controls}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
public class Ding {
public Ding() { }
public Ding(String ID, String Name, StackPanel c) {
this.ID = ID; this.name = Name; this.Controls = c;
}
public String ID { get; set; }
public String name { get; set; }
public StackPanel Controls { get; set; }
}
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
Button but = new Button();
but.Name = "Button";
but.Background = Brushes.Red;
but.Content = "mein text";
TextBox b = new TextBox();
b.Text = "Hallo";
b.FontSize = 30;
StackPanel st = new StackPanel();
// st.Children.Add(b);
st.Children.Add(but);
List<Ding> ba = new List<Ding>();
ba.Add(new Ding("11", "Name1", st));
ba.Add(new Ding("12", "Name2", st));
ba.Add(new Ding("13", "Name3", st));
Hermskim_Gantt_Orientation_Transporter.DataContext = ba;
}
}
hab nicht ganz fertig gelesen 😃
natürlich CellTemplate und nicht editingTemplate