To jest to, co chcę:Scroll i rozciągnąć zawartość ekspander
1.) Po kliknięciu przycisku mój Expander i rozszerza powinien rozciągać aż do końca Siatka
patrz przykładowy obraz =>
2.) Kiedy piszę więcej tekstu, niż przestrzeń jest dostępna w RichTextBox w Expander paski przewijania muszą być widoczne i powinienem móc przewinąć w dół.
Umieszczenie scrollviewera wokół zawartości Expander nie jest trudne, ale nie pomaga, nawet przy ustawieniu "Auto", ale nigdy się nie wyświetla. Ustaw przewijanie na "Widoczny" Nie mogę przewijać, ponieważ zawartość Ekspandera spada bez końca.
Ów mojego kodu próbki:
<Grid Margin="30,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="*" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<StackPanel Background="LightCoral" Orientation="Horizontal">
<TextBlock Grid.Column="0" Text="Incident type:" VerticalAlignment="Center" />
<ComboBox Grid.Column="1" IsEditable="True" Margin="0,7" Text="{Binding SelectedIncidentReport.IncidentType,Mode=TwoWay}" />
<TextBlock Grid.Column="0" Grid.Row="1" Text="Teachers name:" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" Height="25" Text="{Binding SelectedIncidentReport.TeacherName,Mode=TwoWay}" />
<TextBlock Grid.Column="0" Grid.Row="2" Text="Tutor group:" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="0,7" Text="{Binding SelectedIncidentReport.TutorGroup,Mode=TwoWay}" />
</StackPanel>
<Grid Background="LightBlue" Grid.Row="1" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Expander Background="Purple" Grid.Row="0" Height="Auto" Header="Report details" IsExpanded="{Binding SelectedExpander, Mode=TwoWay, Converter={StaticResource ExpanderToBooleanConverter}, ConverterParameter=1}">
<Controls:RichTextBox
VerticalScrollBarVisibility="Auto"
Text="{Binding SelectedIncidentReport.ReportDetails,UpdateSourceTrigger=LostFocus,IsAsync=True}"
AcceptsReturn="True"
AutoWordSelection="True"
AllowDrop="False"
SelectionBrush="#FFAC5BCB"
HorizontalScrollBarVisibility="Auto" />
</Expander>
<Expander Background="Red" Grid.Row="1" Header="Action taken" IsExpanded="{Binding SelectedExpander, Mode=TwoWay, Converter={StaticResource ExpanderToBooleanConverter}, ConverterParameter=2}">
<Controls:RichTextBox
VerticalScrollBarVisibility="Auto"
Text="{Binding SelectedIncidentReport.ActionTaken,UpdateSourceTrigger=LostFocus,IsAsync=True}"
AcceptsReturn="True"
AutoWordSelection="True"
AllowDrop="False"
SelectionBrush="#FFAC5BCB"
HorizontalScrollBarVisibility="Auto" />
</Expander>
<Expander Background="Lavender" Grid.Row="2" Header="Further action" IsExpanded="{Binding SelectedExpander, Mode=TwoWay, Converter={StaticResource ExpanderToBooleanConverter}, ConverterParameter=3}" >
<Controls:RichTextBox
VerticalScrollBarVisibility="Auto"
Text="{Binding SelectedIncidentReport.FurtherAction,UpdateSourceTrigger=LostFocus,IsAsync=True}"
AcceptsReturn="True"
AutoWordSelection="True"
AllowDrop="False"
SelectionBrush="#FFAC5BCB"
HorizontalScrollBarVisibility="Auto" />
</Expander>
<Expander Background="YellowGreen" Grid.Row="3" Header="Home contact" IsExpanded="{Binding SelectedExpander, Mode=TwoWay, Converter={StaticResource ExpanderToBooleanConverter}, ConverterParameter=4}" >
<Controls:RichTextBox
VerticalScrollBarVisibility="Auto"
Text="{Binding SelectedIncidentReport.HomeContact,UpdateSourceTrigger=LostFocus,IsAsync=True}"
AcceptsReturn="True"
AutoWordSelection="True"
AllowDrop="False"
SelectionBrush="#FFAC5BCB"
HorizontalScrollBarVisibility="Auto" />
</Expander>
</Grid>
<Grid Background="LawnGreen" Grid.Row="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Documents:" Grid.Column="0" />
<View:DocumentComboView DataContext="{Binding Path=SelectedIncidentReport.Documents}" Grid.Column="1" HorizontalAlignment="Stretch" />
</Grid>
</Grid>
działa częściowo. Występują 2 błędy: pojawia się ten błąd dla wszystkich 4 ekspanderów => System.Windows.Data Error: 4: Nie można znaleźć źródła dla wiązania z odniesieniem 'ElementName = Ex1'. BindingExpression: Path = IsExpanded; DataItem = null; elementem docelowym jest "RowDefinition" (HashCode = 61280566); Właściwością target jest "Height" (typ "GridLength"), próbowałem tego na RichTextBox wewnątrz Expander.Content => Height OR MinHeight = "{Binding ElementName = Ex1, Path = Height}", ale wysokość RichTextBox nie rozciągnąć w dół? A kiedy piszę dużo tekstu wewnątrz RTB, tekst wypisuje się z richTextBox ... – Elisabeth
Wewnątrz Expander: Teraz zawsze mam spacja (wysokość) Expander.Header, aby to odjąć, powinna również wystąpić w konwerterze. Teraz potrzebuję 2 wartości w konwerterze: ActualHeight of Expander.Header i Expander.Content, aby go odjąć i zwrócić jako nową wysokość dla RichTextBox. Ale w jaki sposób mogę przekazać 2 wartości do konwertera? –
Elisabeth
ok wydaje się, że celem jest IMultiValueConverter. – Elisabeth