将空间添加到充满Textboxes的StackPanel中

时间:2013-03-06 16:24:37

标签: c# xaml textbox microsoft-metro stackpanel

我是C#& XAML发展。我用几个文本框创建了一个metro应用程序。这些文本框通过C#代码中的StackPanel加载到XAML数据中,必须进行硬编码。问题是,我不知道如何在每个文本框之间添加一些空格。有人有想法吗? 守则:

 private void AddLastestCreatedField()
    {
        // Load the last created Field From DB

        DBFunction.FieldTypes latestField;

        DBFunction.Class1 myDBClass = new DBFunction.Class1();
        latestField = myDBClass.GetLastestField();

        // add new textbox and put it on the screen

        var dragTranslation = new TranslateTransform();

        //Generate the TextBox

        TextBox fieldTextBox = new TextBox();

        fieldTextBox.Name = "fieldTextBox_" + latestField.ID.ToString();
        fieldTextBox.FontSize = 15;
        fieldTextBox.Background.Opacity = 0.8;
        ToolTip toolTip = new ToolTip();
        toolTip.Content = latestField.Description;
        ToolTipService.SetToolTip(fieldTextBox, toolTip);
        fieldTextBox.IsReadOnly  = true;

        // Add Drag and Drop Handler for TextBox

        fieldTextBox.ManipulationMode = ManipulationModes.All;
        fieldTextBox.ManipulationDelta += fieldTextBox_ManipulationDelta;
        fieldTextBox.ManipulationCompleted += fieldTextBox_ManipulationCompleted;
        fieldTextBox.RenderTransform = dragTranslation;
        dragTranslationDict.Add(fieldTextBox.Name, dragTranslation);
        fieldTextBox.RenderTransform = dragTranslation;

        // Add TextBox to a List to control later
        TxtBoxList.Add(fieldTextBox);

        // Generate TextBlock for each TextBlock

        TextBlock fieldTextBlock = new TextBlock();
        // fieldTextBlock.Name = "fieldTextBlock_" + cnt.ToString();


        fieldTextBlock.TextAlignment = TextAlignment.Right;
        fieldTextBlock.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Right;

        fieldTextBlock.Name = "fieldTextBlock_" + latestField.ID.ToString();
        fieldTextBlock.Text = latestField.Name;
        fieldTextBlock.FontSize = 15;
        fieldTextBlock.Height = 33;

        // Add Drag and Drop Handler for TextBlock

        var dragTranslation2 = new TranslateTransform();
        fieldTextBlock.RenderTransform = dragTranslation2;
        dragTranslationDict2.Add(fieldTextBlock.Name, dragTranslation2);

        // Add TextBlock to a list to control later

        TxtBlockList.Add(fieldTextBlock);

        TextBoxStack.Children.Add(fieldTextBox);
        TextBlockStack.Children.Add(fieldTextBlock);



    }

2 个答案:

答案 0 :(得分:1)

我会跳过通常的“你试过了什么?”问题并说你可能通过在Margin上设置TextBox属性来获得所需内容 - Margin属性会在控件大小周围添加“空格”作为一种填充(不是与Padding属性混淆,后者将在控件范围内添加 空间

答案 1 :(得分:1)

我不知道你到底在做什么,但要么使用文本框的Margin - 属性。它定义了控件周围的空间,

有关详细信息,请参阅MSDN