【发布时间】:2010-12-31 18:34:14
【问题描述】:
我正在以编程方式将Textbox 和Button 加载到水平StackPanel 中。按钮的大小(仅包含Image)是固定的,但我无法让文本框填充其父级的可用宽度。代码是这样的:
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 );
如果我取消注释文本框的 MinWidth 设置,它将按我想要的方式显示,但我不想明确指定宽度。我尝试按如下方式添加绑定,但这根本不起作用(文本框消失了!)
Binding widthBinding = new Binding() {
Source = parent.ActualWidth,
};
passwdBox.SetBinding( TextBox.WidthProperty, widthBinding );
提前感谢您的帮助!
【问题讨论】:
标签: windows-phone-7 binding textbox width actualwidth