gpt4 book ai didi

c# - Windows Phone 8.1 Binding only "Left"Margin 属性

转载 作者:可可西里 更新时间:2023-11-01 09:24:20 24 4
gpt4 key购买 nike

我有一个静态资源:

<x:Double x:Key="dOffset">9.6</x:Double>

我想将此资源分配给样式中的 Margin.Left 属性。

我试过这个:

  <Style x:Key="HomeButtonTextContainer" TargetType="StackPanel">
<Setter Property="Margin">
<Setter.Value>
<Binding Path="Thickness">
<Binding.Source>
<local:CustomThickness Left="{StaticResource dOffset}" Top="0" Bottom="0" Right="0" />
</Binding.Source>
</Binding>
</Setter.Value>
</Setter>
</Style>

但它不起作用。我不能像下面这样将 Thickness 声明为资源,编译器会提示它。

 <Thickness x:Key="dOffset" Left="9.6" Right="0" Left="0" Top="0"></Thickness>

我无法从类 Thickness 派生,所以我不得不制作一个构建 Thickness 的自定义类(CustomThickness 类)

我该如何解决这个问题?

最佳答案

您不能只设置 TopMargin。您应该设置 Thickness 实例的所有值。如果您不想更改其他边距,只需将它们设置为零即可。

XAML

 <Style x:Key="HomeButtonTextContainer"
TargetType="StackPanel">
<Setter Property="Margin"
Value="{Binding Source={StaticResource dOffset},
Converter={StaticResource myConverter}}">
</Setter>

并且您应该创建返回 Thickness 实例的转换器类:

public class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var topMargin = (double)value;
return new Thickness(0, topMargin, 0, 0);
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}

编辑:Windows Phone 不支持绑定(bind) setter 的值。也许this文章对你有帮助。

关于c# - Windows Phone 8.1 Binding only "Left"Margin 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com