Почему это не work?
В 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): _Failed to assign to property 'System.Windows.Controls.ContentPresenter.Content'
Как ни странно, следующее будет работать нормально, если я удалю сетку из установщика и просто использую текст:
<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. Есть ли у кого-нибудь какие-либо знания по этому поводу?
Заранее большое спасибо за вашу помощь!