Xamarin Windows 8.1 自定义渲染器将十六进制转换为画笔?
Xamaring Windows 8.1 Custom Rendered convert hex to Brush?
我正在尝试遵循此处定义的自定义渲染过程:
https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/entry/
我正在尝试做 windows,我只是 运行 windows 而不是 windows phone。但我不知道如何将十六进制颜色转换为所需的 windows SolidColorBrush
我该怎么做。我对不同的 dll 感到相当困惑,因为 Color 也存在于便携式 class 库中,但不兼容。
如果有人可以对此进行测试并向我展示一份工作副本,那将不胜感激。我缺少参考吗?
using Windows.UI;
using Windows.UI.Xaml.Media;
using Hello.Renderer;
using Hello.Windows.Renderer;
using Xamarin.Forms;
using Xamarin.Forms.Platform.WinRT;
[assembly:ExportRenderer(typeof(MyEntry), typeof(MyEntryRenderer))]
namespace Hello.Windows.Renderer
{
public class MyEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.Background = (SolidColorBrush)new ColorConverter().Convert("#FF6A00", null, null, null);
}
}
}
}
试试 this converter:
public static SolidColorBrush GetColorFromHexa(string hexaColor)
{
return new SolidColorBrush(
Color.FromArgb(
255,
Convert.ToByte(hexaColor.Substring(1, 2), 16),
Convert.ToByte(hexaColor.Substring(3, 2), 16),
Convert.ToByte(hexaColor.Substring(5, 2), 16)
)
);
}
我正在尝试遵循此处定义的自定义渲染过程:
https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/entry/
我正在尝试做 windows,我只是 运行 windows 而不是 windows phone。但我不知道如何将十六进制颜色转换为所需的 windows SolidColorBrush
我该怎么做。我对不同的 dll 感到相当困惑,因为 Color 也存在于便携式 class 库中,但不兼容。
如果有人可以对此进行测试并向我展示一份工作副本,那将不胜感激。我缺少参考吗?
using Windows.UI;
using Windows.UI.Xaml.Media;
using Hello.Renderer;
using Hello.Windows.Renderer;
using Xamarin.Forms;
using Xamarin.Forms.Platform.WinRT;
[assembly:ExportRenderer(typeof(MyEntry), typeof(MyEntryRenderer))]
namespace Hello.Windows.Renderer
{
public class MyEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.Background = (SolidColorBrush)new ColorConverter().Convert("#FF6A00", null, null, null);
}
}
}
}
试试 this converter:
public static SolidColorBrush GetColorFromHexa(string hexaColor)
{
return new SolidColorBrush(
Color.FromArgb(
255,
Convert.ToByte(hexaColor.Substring(1, 2), 16),
Convert.ToByte(hexaColor.Substring(3, 2), 16),
Convert.ToByte(hexaColor.Substring(5, 2), 16)
)
);
}