Cum pot să aliniez un element la stânga și altul să alinieze la dreapta?

În aplicația Windows Phone 7 , aș dori să am un TextBlock urmat de un CheckBox . De la stanga la dreapta.

Fac acest lucru programabil , și pot face acest lucru cu următorul cod:

StackPanel ControlStackPanel = new StackPanel();
ControlStackPanel.Orientation = System.Windows.Controls.Orientation.Horizontal;

TextBlock ControlTextBlock = new TextBlock();
ControlTextBlock.Text = @"ControlNameGoesHere";

CheckBox ControlCheckBox = new CheckBox();
ControlCheckBox.Margin = new Thickness(0, 0, 0, 0);
ControlCheckBox.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;

ControlStackPanel.Children.Add(ControlTextBlock);
ControlStackPanel.Children.Add(ControlCheckBox);

However, I would actually like the TextBlock element to align to the left side of the screen, and the CheckBox element align to the right side of the screen. How can I do this?

Trebuie să adaug programul în mod programatic? Motivul pentru care nu vreau să fac acest lucru în XAML este că adăugarea acestor stackpanels va fi un proces iterativ, și funcționează mai bine cu codul meu dacă fac totul programabil.

M-am ghinionat foarte mult, dar nu am avut mult noroc.

Mulţumesc mult! Brett

0

2 răspunsuri

Un control de conținut are doar o aliniere simultană. Toate comenzile din cadrul acestuia sunt aliniate în conformitate cu alinierea orizontală a acestuia. Poate doriți să aveți două comenzi de conținut cu diferitele aliniamente în interiorul unui container exterior mai mare.

Grid
  StackPanel left
     Control
  StackPanel right
     Control
0
adăugat

Încercați să plasați comenzile în coloane ale rețelei. ControlTextBox trebuie să treacă la prima coloană a Gridului, ControlCheckBox - în cea de-a doua. Iată câteva coduri:

TextBlock ControlTextBlock = new TextBlock();
ControlTextBlock.Text = @"ControlNameGoesHere";
ControlTextBlock.SetValue(Grid.ColumnProperty, 0);
ControlTextBlock.VerticalAlignment = System.Windows.VerticalAlignment.Top;

CheckBox ControlCheckBox = new CheckBox();
ControlCheckBox.Margin = new Thickness(0, 0, 0, 0);
ControlCheckBox.SetValue(Grid.ColumnProperty, 1);
ControlCheckBox.VerticalAlignment = System.Windows.VerticalAlignment.Top;

ColumnDefinition FirstColumn = new ColumnDefinition();
FirstColumn.Width = System.Windows.GridLength.Auto;
ColumnDefinition SecondColumn = new ColumnDefinition();
SecondColumn.Width = System.Windows.GridLength.Auto;

Grid ContentGrid = new Grid();
ContentGrid.ColumnDefinitions.Add(FirstColumn);
ContentGrid.ColumnDefinitions.Add(SecondColumn);
ContentGrid.Children.Add(ControlTextBlock);
ContentGrid.Children.Add(ControlCheckBox);
0
adăugat