[英]How can I take a partial screenshot of my Xamarin.Forms app and save it into my gallery?
[英]How can i pass a color to my UI if my property is a string in my database (xamarin.forms)
現在我得到一個隨機的十六進制顏色值,我正在嘗試將它分配給背景顏色。 (是的,如果我硬核一種顏色,它會起作用)
該值已存儲(您可以在下圖中看到)但不知何故它不顯示顏色,我不知道為什么。
我有一種感覺,這是因為我試圖給 BackGroundColor 一個字符串,所以它無法識別它,因為它不是顏色。 但是在數據庫中,您不能放置 Color 屬性。
有什么想法或其他方法嗎? 謝謝
數據庫中的線條顏色值
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string TasksGroupDescription { get; set; }
public DateTime TasksGroupDate { get; set; }
public double ExpositionResult { get; set; }
public string LineColor { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<Tasks> Taches { get; set; }
BaseViewModel.cs 屬性
private string lineColor;
public string LineColor
{
get
{
return lineColor;
}
set
{
lineColor = value;
NotifyPropertyChanged();
}
}
TasksGroupPageViewModel.cs 我有我的 function 生成顏色並在構造函數中調用它
public string RandomColorGenerator()
{
var random = new Random();
var color = String.Format("#{0:X6}", random.Next(0x1000000));
return color;
}
public TasksGroupPageViewModel()
{
DeleteTasksGroupCommand = new Command(new Action<object>((obj) =>
{
DeleteTasksGroup((TasksGroup)obj);
}));
LineColor = RandomColorGenerator();
GetTaskgroups();
}
編輯評論中的問題
使用ToHex
和FromHex
將Color
轉換為string
private string lineColor;
public Color LineColor
{
get
{
return Color.FromHex(lineColor);
}
set
{
lineColor = value.ToHex();
NotifyPropertyChanged();
}
}
和
public Color RandomColorGenerator()
{
var random = new Random();
var color = String.Format("#{0:X6}", random.Next(0x1000000));
return Color.FromHex(color);
}
BackgroundColor
是Color
類型 object,將您的數據庫十六進制字符串或隨機十六進制轉換為Color
private string lineColor;
public Color LineColor
{
get
{
return Color.FromHex(lineColor);
}
set
{
lineColor = value;
NotifyPropertyChanged();
}
}
將RandomColorGenerator
方法移動到BaseViewModel.cs
,在 BaseViewModel 的構造函數中設置lineColor
。
public class BaseViewModel:INotifyPropertyChanged
{
public BaseViewModel()
{
lineColor = RandomColorGenerator();
}
private string lineColor;
public Color LineColor
{
get
{
return Color.FromHex(lineColor);
}
set
{
lineColor = value.ToHex();
OnPropertyChanged("LineColor");
}
}
public string RandomColorGenerator()
{
var random = new Random();
var color = String.Format("#{0:X6}", random.Next(0x1000000));
return color;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.