2009-09-30 65 views
0

招呼社会任何一个可以请说如何添加控件动态成堆叠面板动态控件添加到silveright的StackPanel创建菜单

注:我需要的是我要创建从获取数据的菜单数据库并创建相应的菜单项可以在任何一个说我怎么能创造这样的菜单我是新来的银色光芒

我使用Silverlight 3 beta和表达共混物3 +素描流量请帮我知道如何设计这些

+0

退房项目的这个 http://silverlightpopupmenu.codeplex.com/ – 2010-07-17 07:46:20

回答

4

请原谅变量名称,但是这里是一个动态添加项目到堆栈面板的代码片段

StackPanel split = new StackPanel(); 
TextBlock expected = new TextBlock(); 
expected.Text = "Expected Final Bonus"; 
TextBlock meh = new TextBlock(); 
meh.Text = Math.Round(((QuoteData)results.First()).ExpectedBonus * 100, 2) + "%"; 
split.Children.Add(expected); 
split.Children.Add(meh); 

TextBlock disc = new TextBlock(); 
disc.Text = "Discretionary Percentage"; 
TextBlock number = new TextBlock(); 
number.Text = Math.Round(((QuoteData)results.First()).Discretionary * 100, 2) + "%"; 

split.Children.Add(disc); 
split.Children.Add(number); 

这里您可以看到我也是动态创建了堆栈面板,但是您也可以使用XAML创建它。

像这样的东西应该工作:

<StackPanel Grid.Row="3" Grid.Column="1" Name="split" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto"> 
0

首先,如果你的StackPanel已经在您的XAML,处理Loaded事件:

<StackPanel x:Name="spValue" Loaded="spValue_Loaded"> 
</StackPanel> 

private void spValue_Loaded(object sender, RoutedEventArgs e) 
{ 
    StackPanel stackPanel = (sender as StackPanel); 
    stackPanel.Children.Clear(); 
    stackPanel.Children.Add(XamlReader.Load(XElement.Parse(xaml).ToString()) as FrameworkElement); 
} 

的控制与XAMLReader从你的东西装创建来自DB。您可以适应所有您的特定场景(菜单和菜单项...)

+0

朋友devMomentum, 我将加载N多从DB我怎么可以添加我可以使用foreach或for循环回答XElement是从数据库中获取数据的变量我是否可以使用这样的事情 private void spValue_Loaded(object sender,RoutedEventArgs e) { for( int i = 0; i 2009-10-02 04:58:08