C # создать обзор свойств файла для пользовательского элемента управления - PullRequest
0 голосов
/ 21 февраля 2012

, когда я писал собственную тему / элемент управления, мне нужно было создать свойство для этого элемента управления, в котором пользователь выбирает файл .ico (файл значков Windows). Предполагается, что он похож на свойство «Выбрать фон» для формы. Согласитесь, это ограничено файлом .ico. Пока у меня есть этот код:

private string IconLocation;
public string CustomIcon
{
    get
    {
        return IconLocation;
    }
    set
    {
        IconLocation = value;
    }
}

независимо от того, что это не работает, как я хотел, я также нашел этот код:

[DefaultValue(""), Editor("System.Web.UI.Design.ImageUrlEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), UrlProperty, WebSysDescription("Image_ImageUrl"), Bindable(true), WebCategory("Appearance")]
public virtual string ImageUrl
{
    get
    {
        string str = (string) this.ViewState["ImageUrl"];
        if (str != null)
        {
            return str;
        }
    return string.Empty;
    }
    set
    {
        this.ViewState["ImageUrl"] = value;
    }
}

получено от: http://forums.asp.net/t/1335659.aspx

это тоже не работает из-за недоступности состояния просмотра, так как я могу реализовать выбор файла для настраиваемого свойства в обычном c #?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Я тщетно пытался создать свой собственный UITypeEditor, производный от одного из UrlEditor, как ImgageUrlEditor, и пытался использовать этот.Однако это абсолютно не влияет.

[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public class IconUrlEditor : UrlEditor
{
    protected override string Filter
    {
        get
        {
            return "Icon Files (*.ico)|*.ico";
        }
    }
}

Я также установил свойство фильтра UrlProperty.Похоже, это также не имеет никакого эффекта.

public partial class WebUserControl1 : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Image1.ImageUrl = ImageUrl;
    }

    [Editor(typeof(IconUrlEditor), typeof(UITypeEditor)), UrlProperty("*.ico")]
    public virtual string ImageUrl { get; set; }
}

Либо я что-то упустил, либо эти свойства фильтра не используются вообще внутри.

0 голосов
/ 21 февраля 2012

Хм, разобрался, вроде нет документации, но вот как это сделать:

private Icon IconLocation;
public Icon CustomIcon
{
    get
    {
        return IconLocation;
    }
    set
    {
        IconLocation = value;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...