Ich habe ein Raster, wo ich versuche, eine Zeile, die ein Textfeld enthält mit C# als meinen Code hinter verstecken. Mein Endziel ist eine Möglichkeit zu finden, Text in das Textfeld zu setzen, während die Zeile ausgeblendet ist. Es kann zu Problemen kommen, wo wpf es nicht erlaubt Text in einem Textfeld zu setzen, wenn die Größe des Textfelds kleiner als die Schriftgröße ist. Das ist, was ich habe, so weit:XAML C# Raster ausblenden Zeile
XAML:
Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<Button x:Name="Button1"
Grid.Row="2"
Grid.Column="1"
Width="100"
Height="50"
Click="OnClick"
Content="Hide Middle Row"/>
<Grid x:Name="AddressBar" Grid.Row="1" Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="Block1"
FontSize="16"
Grid.ColumnSpan="3"
HorizontalAlignment="Center"
TextAlignment="Center"/>
</Grid>
</Grid>
C#:
namespace rowCollapseTest
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnClick(object sender, RoutedEventArgs e)
{
AddressBar.RowDefinitions(1).Height = new GridLength(0);
AddressBar.Visibility = Visibility.Collapsed;
Block1.Text = "This is a test";
}
}
}
Von dem, was ich gelesen habe, sollte diese Arbeit. Ich erhalte jedoch einen Fehler bezüglich "RowDefinitions (1)". Der Fehler lautet: "Nicht aufrufbares Mitglied 'Grid.RowDefinitions' kann nicht wie eine Methode verwendet werden." Irgendwelche Ideen?
Vielen Dank im Voraus!
Oh duh, wie habe ich das nicht verstanden! Leider bekomme ich einen Out-of-bounds-Fehler mit den Klammern. Ich sollte folgendes schreiben können: AddressBar.Height = new GridLength (0); Aber in diesem Szenario erhielt ich den Fehler: Kann Typ System.Window.GridLength nicht implizit zu "double" konvertieren. – user5890660
@ user5890660 Oh, rechts, AddressBar hat überhaupt keine RowDefinitions. Das andere Raster hat Zeilendefinitionen, AddressBar hat nur Spaltendefinitionen. –
@ user5890660 Höhen nicht ein GridLength-Wert, nur ein Doppel. Es ist in Ordnung, ihm eine alte Null zuzuordnen - oder besser noch, Visibility.Collapsed der Eigenschaft Visibility zuzuweisen. –