Я настроил собственный элемент управления в SL, и я пытаюсь заставить внешний вид элемента управления правильно вести себя. Я чувствую (с помощью некоторых умных людей здесь), что я довольно близко к этому, но я все еще не совсем там.Значение по умолчанию для свойства зависимостей в пользовательском элементе Silverlight
Когда мой элемент управления сначала добавляется в панель в Blend, он отображается, как я ожидаю, на основе шаблона, и когда я изменяю свойства зависимостей, которые я обнаружил, они отлично работают. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда вы делаете изменения через Blend и затем «перезапускаете» это значение с помощью окна параметров, он сбрасывает свойство в области «Разное», но фактически не изменяет сам элемент управления в дизайне, если Я снова создаю проект.
Вот код, который я в настоящее время:
public enum SolidGlossTypes
{
Normal,
Header,
Footer,
None
}
public SolidGlossTypes SolidGlossType
{
get
{
return (SolidGlossTypes)GetValue(SolidGlossTypeProperty);
}
set
{
SetValue(SolidGlossTypeProperty, value);
switch (value)
{
case SolidGlossTypes.Header:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
case SolidGlossTypes.Footer:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
case SolidGlossTypes.None:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
default:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
}
}
}
public static readonly DependencyProperty SolidGlossTypeProperty = DependencyProperty.Register("SolidGlossType", typeof(SolidGlossTypes), typeof(SolidGloss), new PropertyMetadata(SolidGlossTypes.Normal));
Я пытался мастерить со свойством изменили функцию обратного вызова, но не имел никакого успеха при получении его на работу.
Кроме того, можно ли установить значения по умолчанию для свойства зависимостей в стиле в generic.xaml, а затем привязать его к шаблону?
Спасибо заранее,
E
+1 Кроме того, вы можете подумать о том, чтобы сделать enum объектом первого класса и помещать соответствующие значения на это, а не в ваш метод set –
Хорошо, я потерял, как использовать метод обратного вызова свойства (I не может понять, что положить в оператор switch вместо «value». – Eric
Alex: Я не понимаю, что вы имеете в виду. – Eric