簡體   English   中英

將顏色保存到ViewState

[英]Save Color to ViewState

我有一個自定義控件,面板包含所有其他控件。 控件處於兩種狀態之一:編輯模式和正常狀態。 在編輯模式下,我希望控件具有不同背景顏色的選項。

我有:

在Pre_Render中:

Panel1.BackColor = EditMode ? BackEditColor : BackColor;

和控制屬性:

[Bindable(true)]
[Category("Misc")]
[Description("The background color.")]
[DefaultValue("white")]
[Localizable(true)]
public Color BackColor
{
    get { return Color.FromName(Convert.ToString(ViewState["BackColor"] ?? "white")); }
    set { ViewState["BackColor"] = value.Name; }
}

[Bindable(true)]
[Category("Misc")]
[Description("The edit-mode background color.")]
[DefaultValue("#FFFFCC")]
[Localizable(true)]
public Color BackEditColor
{
    get { return Color.FromName(Convert.ToString(ViewState["BackEditColor"] ?? "#FFFFCC")); }
    set { ViewState["BackEditColor"] = value.Name; }
}

我可以通過控件的屬性設置顏色沒有問題,但它們只在渲染時顯示為白色。 我應該如何保存/讀取ViewState的顏色?

怎么樣:

public Color BackColor
{
    get { return (Color)(ViewState["BackColor"] ?? Color.White); }
    set { ViewState["BackColor"] = value; }
}

Color.FromName(“#FFFFCC”)將不起作用,因為它僅適用於預定義的名稱,如“黑色”。

您可以簡單地將Color對象本身放在viewstate中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM