2012-06-04 108 views
0

在我的Windows Phone 7應用程序中,我想要有一個TextBlock後跟一個CheckBox。從左到右。我如何將一個元素對齊到左側,另一個對齊到右側?

我這樣做編程,我可以用下面的代碼做到這一點:

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); 

然而,我真的喜歡TextBlock元,調整到屏幕左邊的側,並且CheckBox元素與屏幕右側的右側對齊。我怎樣才能做到這一點?

是否需要以編程方式添加網格?我不想在XAML中這樣做的原因是,添加這些堆疊面板將是一個迭代過程,如果我以編程方式完成所有操作,它只會更好地處理我的代碼。

我已經搜索了很多,但沒有多少運氣。

非常感謝! Brett

回答

0

內容控件一次只有一個對齊方式。其中的所有控件根據其水平對齊進行對齊。您可能希望在一個較大的外部容器內部使用兩個不同的對齊方式的內容控件。

Grid 
    StackPanel left 
    Control 
    StackPanel right 
    Control 
0

嘗試把你的控件到網格的列。 ControlTextBox應該到Grid的第一列,ControlCheckBox - 進入第二個列。 這是一些代碼:

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); 
相關問題