需求:一组按钮的数据是从服务器中Json数据发过来的,需要根据这个Json数据动态地添加这组按钮。
工具:使用来解析Json。
过程:C#代码中new了一个Button,想给它添加Margin属性时会看到如下报错:
报错提示我们,想给Margin属性赋值需要的是System.Windows.Thickness类型。 查看MSDN文档关于这个System.Windows.Thickness类型的描述: 直接拖到下面看例子:这里我们只关注代码。所以参考案例,修改代码如下:
for (int i = 0; i < list.Count; i++){ RadioButton btn = new RadioButton(){ Content = list[i].Category, // 对应的实体类的属性 }; // 添加按钮的点击回调 btn.Click += new RoutedEventHandler(MyBtn_OnClick); // 这样添加Margin属性 Thickness myThickness = new Thickness(); myThickness.Left = 5; myThickness.Top = 5; myThickness.Right = 5; myThickness.Bottom = 5; btn.Margin = myThickness; // 默认勾选上按钮组的第一个 if (i == 0) { btn.IsChecked = true; } // 设置样式 btn.SetValue(RadioButton.StyleProperty, Application.Current.Resources["myRadioButton"]); // 把这个控件加入父容器中 wrapPanel.Children.Add(btn);}
关于C#代码中动态使用样式,参考: