C# 如何仅在Xamarin表单XAML中设置左边距?

C# 如何仅在Xamarin表单XAML中设置左边距?,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,这个问题与Xamarin而不是WPF相同 如何从XAML在视图上设置单个边距 链接的Q&A表示默认实现总是将所有未指定的边距设置为0,即使从代码中也是如此。解决方案是创建一个: 资料来源: * *除非我遗漏了什么,否则只需按如下方式指定边距即可: <Label Margin = "0,20,0,0" Text = "Hello World!" /> 边距指定为左、上、右、下值。可以尝试使用valueConverter,通过绑定将值发送到转换器并返回厚度对象。

这个问题与Xamarin而不是WPF相同

如何从XAML在视图上设置单个边距


链接的Q&A表示默认实现总是将所有未指定的边距设置为0,即使从代码中也是如此。

解决方案是创建一个:


资料来源:
*

*

除非我遗漏了什么,否则只需按如下方式指定边距即可:

<Label
    Margin = "0,20,0,0"
    Text = "Hello World!" />


边距指定为左、上、右、下值。

可以尝试使用valueConverter,通过绑定将值发送到转换器并返回厚度对象。 有点像

Margin={{Binding Marginleft,Converter={StaticResource stringtothicknesconverter}}

在这里,你传递一个字符串,然后得到一个像
新厚度(0,边缘左侧,0,0)


此外,您还可以直接绑定到viewModel中的厚度类型对象,但这是一种不好的做法,因为它会在viewModel中创建视图依赖关系,从而破坏MVVM的功能。这仅在您已经知道要设置的所有页边距的情况下才有效。如果您只想覆盖其中一个页边距,则这不起作用-相反,它会设置所有其他页边距rs到0这是我错过的!公正的评论。我的解决方案无效。
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
         xmlns:utils="using:Sample.Utils"
         x:Class="Sample.MyContentPage">
<StackLayout
   Orientation="Vertical"
   utils:Margin.Left="{StaticResource InnerPageContentMarginLeft}">
</StackLayout>
</ContentPage>
<Label
    Margin = "0,20,0,0"
    Text = "Hello World!" />