WrapPanel中的C#WPF控件

时间:2015-12-28 20:15:34

标签: c# wpf controls wrappanel

enter image description here嘿伙计们, 我试图通过代码添加一些控件,但我有一个小问题。 我在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] = ' ';
        }
    }
}

2 个答案:

答案 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);
}