Почему это не работает?
В generic.xaml для настраиваемого элемента управления:
В стиле, применяемом к настраиваемому элементу управления ...
<Setter Property="ChromeContent">
<Setter.Value>
<Grid />
</Setter.Value>
</Setter>
...
Позже в шаблоне элемента управления ...
<ContentPresenter Grid.Column="0"
x:Name="ChromeContentPresenter"
Content="{TemplateBinding ChromeContent}" />
Вот свойство зависимости для ChromeContent ...
public Object ChromeContent
{
get { return (Object)GetValue(ChromeContentProperty); }
set { SetValue(ChromeContentProperty, value); }
}
public static readonly DependencyProperty ChromeContentProperty =
DependencyProperty.Register("ChromeContent", typeof(Object),
typeof(casPopup), null);
Как видите, для этого нужен любой предмет.Я попытался изменить его на сетку, но это не помогло.
Выдает эту ошибку (из javascript): _Не удалось присвоить свойству 'System.Windows.Controls.ContentPresenter.Content'
Как ни странно, следующее будет работать нормально, если я удалю Grid из установщика и просто использую текст:
<Setter Property="ChromeContent" Value="DEFAULT" />
Кроме того, это также будет работать из метода OnApplyTemplate в классе элемента управления:
Grid g = new Grid();
g.Width = 100;
g.Height = 25;
g.Background = new SolidColorBrush(Colors.LightGray);
ChromeContent = g;
Мне трудно понять, что мешает стандартному содержимому сетки, определенной в generic.xaml, работать.У кого-нибудь есть знания по этому вопросу?
Большое спасибо заранее за вашу помощь!