【发布时间】:2026-02-02 06:25:01
【问题描述】:
你能帮我把这个 Xamarin xaml 翻译成 c# 吗?
BackgroundColor="{Binding IconColor, Converter={StaticResource LocalHexColorFromStringConverter}}"/>
谢谢!
【问题讨论】:
标签: xaml xamarin.forms ivalueconverter
你能帮我把这个 Xamarin xaml 翻译成 c# 吗?
BackgroundColor="{Binding IconColor, Converter={StaticResource LocalHexColorFromStringConverter}}"/>
谢谢!
【问题讨论】:
标签: xaml xamarin.forms ivalueconverter
您可以通过MyBtn.SetBinding(Button.BackgroundColorProperty, "IconColor", BindingMode.OneTime, new LocalHexColorFromStringConverter()) ;翻译它
我用 Button 的背景颜色做一个测试。
Button MyBtn = new Button();
MyBtn.Text = "test";
MyBtn.SetBinding(Button.BackgroundColorProperty, "IconColor", BindingMode.OneTime, new LocalHexColorFromStringConverter()) ;
Content = MyBtn;
这里是LocalHexColorFromStringConverter.cs
public class LocalHexColorFromStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Color.FromHex((string)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
请问“new LocalHexColorFromStringConverter()”和“converter: LocalHexColorFromStringConverter()”有什么区别?
你的意思是“new LocalHexColorFromStringConverter()”和“converter: LocalHexColorFromStringConverter”吗?
如果是,它们是相同的,converter: LocalHexColorFromStringConverter 是 Xaml 中的 wirte 类型,converter: 是前缀,它解释了这个类的具体路径,如果你想从任何页面调用它,你需要写在App.xaml。
例如,你在 App.xaml 中添加添加它。
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:converters="clr-namespace:OAuthGoogleDemo"
x:Class="OAuthGoogleDemo.App">
<Application.Resources>
<ResourceDictionary>
<converters:LocalHexColorFromStringConverter x:Key="HexColorFromStringConverter" />
</ResourceDictionary>
</Application.Resources>
</Application>
然后在 Mainpage.xaml 中使用 Converter={StaticResource HexColorFromStringConverter}}"
【讨论】: