Ich lade eine Textbox
und eine Button
in eine horizontale StackPanel
programmgesteuert. Die Größe der Schaltfläche (die nur eine Image
enthält) ist behoben, aber ich kann die Textbox nicht erreichen, um die verfügbare Breite ihrer Eltern zu füllen. Dies ist, was der Code wie folgt aussieht:Die Breite einer TextBox an die ActualWidth des übergeordneten Containers binden
StackPanel parent = new StackPanel() {
Orientation = Orientation.Horizontal,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top,
};
TextBox textbox = new TextBox() {
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top,
//MinWidth = 375,
};
Button btn = new Button() {
Content = new Image() {
MaxHeight = 40,
MaxWidth = 40,
MinHeight = 40,
MinWidth = 40,
Margin = new Thickness(0),
Source = new BitmapImage(
new Uri("btnimage.png", UriKind.Relative)),
},
HorizontalAlignment = HorizontalAlignment.Right,
BorderBrush = new SolidColorBrush(Colors.Transparent),
Margin = new Thickness(0),
};
btn.Click += ((s, e) => OnBtnClicked(s, e, textbox));
parent.Children.Add(textbox);
parent.Children.Add(btn);
Wenn ich die MinWidth
Einstellung für die Textbox Kommentar- es angezeigt wird, wie ich es will, aber ich möchte nicht eine Breite explizit angeben müssen. Ich habe versucht, eine verbindliche Zugabe wie folgt aber, dass überhaupt nicht arbeiten (die Textbox verschwindet einfach!)
Binding widthBinding = new Binding() {
Source = parent.ActualWidth,
};
passwdBox.SetBinding(TextBox.WidthProperty, widthBinding);
Vielen Dank für Ihre Hilfe im Voraus!
Das sieht aus, was ich brauche, aber ich kann 'DockPanel' im Silverlight Toolkit für Windows Phone nicht finden. Ich habe gerade versucht, es neu zu installieren, um sicherzustellen, dass ich die neueste Version habe, aber immer noch kein Glück. – Praetorian
Bei der Entscheidung, Toolkit-Komponenten zu verwenden, ist Vorsicht geboten. Dies wird zur Gesamtgröße des Xap beitragen, was bei WP7 eine wichtige Überlegung sein kann. Wenn der einzige Grund, eine Toolkit-DLL hinzuzufügen, darin besteht, diese eine Funktion zu erhalten, sollte eine alternative Lösung ohne Toolkit gesucht werden. – AnthonyWJones
Sehr guter Punkt, Anthony. Wenn Sie das Silverlight-Toolkit nicht bereits verwenden, würde ich ein Grid verwenden. Aber DockPanel ist extrem nützlich für eine Vielzahl von Layouts. Sie können fast immer ein Raster für solche Layouts verwenden, aber wie Sie in Austins Antwort sehen können, können Raster-basierte Layouts ziemlich ausführlich werden. – Josh