Textbox
とButton
をプログラムで横方向にロードします。StackPanel
ボタンのサイズ(Image
のみを含む)は固定されていますが、親の利用可能な幅を埋めるためにテキストボックスを取得することはできません。私はそれがしたいが、私は明示的に幅を指定する必要はありませんしたいと、それが表示されたテキストボックスの設定MinWidth
のコメントを解除した場合TextBoxの幅を親コンテナのActualWidthにバインドする
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);
:これは、コードは次のようになります。すべてでは動作しないことが、以下のよう私はバインディングを追加してみました(テキストボックスはちょうど消える!)あなたの助けを
Binding widthBinding = new Binding() {
Source = parent.ActualWidth,
};
passwdBox.SetBinding(TextBox.WidthProperty, widthBinding);
感謝を事前に!
私は必要なもののようですが、Windows Phone用のSilverlight Toolkitで「DockPanel」が見つかりません。私はちょうど私が最新リリースを持っていることを確認するためにそれを再インストールしようとしましたが、まだ運がありません。 – Praetorian
ツールキットコンポーネントの使用を決定するときは注意が必要です。これらはWPapの重要な考慮事項となるXapの全体的なサイズに追加されます。ツールキットdllを追加する唯一の理由が、この1つの機能を動作させることであるならば、ツールキット以外の代替ソリューションが求められるはずです。 – AnthonyWJones
非常に良い点、アンソニー。 Silverlightツールキットをまだ使用していない場合は、グリッドを使用します。しかし、DockPanelを持つことは、さまざまなレイアウトに非常に役立ちます。ほとんどの場合、そのようなレイアウトにはグリッドを使用できますが、オースティンの答えで見られるように、グリッドベースのレイアウトは非常に冗長になります。 – Josh