嘿伙计们, 我试图通过代码添加一些控件,但我有一个小问题。 我在WrapPanel中有复选框。复选框转换为1.5倍大。当我改变窗户的大小时,它们会相互碰撞。 没有改变一切都是正常的。如何解决?
// constructs a screen based on the dimensions
public Screen(int height, int width) {
screen = new char[height+2][width+2];
for (int i = 0; i < screen.length; i++) {
for (int j = 0; j < screen[i].length; j++) {
screen[i][j] = ' ';
}
}
}
答案 0 :(得分:3)
RenderTransform
属性用于获取/设置转换,该转换仅影响控件的外观,不会影响其布局逻辑。你想要的是在逻辑上和视觉上转换你的控件,并实现你应该使用LayoutTransform
属性。
答案 1 :(得分:1)
它可能不是很漂亮,但你可以将RenderTransform应用到面板本身,孩子们也会被转换。
它不漂亮的原因是面板调整大小,因此您必须根据转换值应用新的大小。
可以使用这样的代码段:
double xScale = 1.5;
double yScale = 1.5;
Panel.RenderTransform = new ScaleTransform(xScale, yScale);
Panel.Width = Panel.Width / xScale;
Panel.Height = Panel.Height / yScale;
List<System.Windows.Controls.CheckBox> CheckboxList = new List<CheckBox>();
List<string> users = new List<string> { "First Student", "Very First Student", "Second Student", "Student Student" };
foreach (string user in users)
{
CheckBox newItem = new CheckBox();
newItem.Content = user;
Panel.Children.Add(newItem);
}