2017-04-04 56 views
1

我试图在Windows通用应用程序上生成一个动态表单,并且存在保证金问题。XAML保证金错误

我喜欢让Radiobutton和Textbox在边界0的左侧。 问题在于文本框不能停留在左边,我有两个控件,边界为0,不知何故,文本框正在推到屏幕的右侧。

这是我运行应用程序后的结果。

在Windows 10 The output result for Windows Universal app on Windows 10

我的脚本文件名MainPage.xaml.cs中项目AppTestTrash

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 
namespace AppTestTrash 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 
     } 

     private void Page_Loaded(object sender, RoutedEventArgs e) 
     { 
      //Add dynamic RadioButton 
      var dynamicRadiobtn = new RadioButton(); 
      dynamicRadiobtn.Name = "testme"; 
      dynamicRadiobtn.Height = 30; 
      dynamicRadiobtn.Width = 50; 
      dynamicRadiobtn.Margin = new Thickness(0, 100, 0, 0); 
      dynamicForm.Children.Add(dynamicRadiobtn); 

      //Add dynamic texbox 
      var dynamicTextbox = new TextBox(); 
      dynamicTextbox.Name = "testme2"; 
      dynamicTextbox.Height = 30; 
      dynamicTextbox.Width = 50; 
      dynamicTextbox.Margin = new Thickness(0, 120, 0, 0); 
      dynamicForm.Children.Add(dynamicTextbox); 
     } 
    } 
} 

XAML文件MainPage.xaml中的Windows通用应用的输出结果

<Page 
    x:Class="AppTestTrash.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:AppTestTrash" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" Loaded="Page_Loaded"> 

    <Grid Name="mainGrid" BorderBrush="AliceBlue" Width="500" Height="500" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" BorderThickness="2"> 
     <StackPanel Name="dynamicForm" BorderThickness="1"> 
     </StackPanel> 
    </Grid> 
</Page> 

回答

2

要解决此问题,您可以将dynamicTextboxHorizontalAlignment属性设置为Left像下面这样。

//Add dynamic texbox 
var dynamicTextbox = new TextBox(); 
dynamicTextbox.Name = "testme2"; 
dynamicTextbox.Height = 30; 
dynamicTextbox.Width = 50; 
dynamicTextbox.HorizontalAlignment = HorizontalAlignment.Left; 
dynamicTextbox.Margin = new Thickness(0, 120, 0, 0); 
dynamicForm.Children.Add(dynamicTextbox); 

HorizontalAlignment的默认值是拉伸,所以你的文本框将在您的网格甚至左边距为0。欲了解更多信息的中心,请参阅备注HorizontalAlignment