¿Por qué no funciona?Silverlight Defaulting ContentPresenter Contenido
En generic.xaml para un control personalizado:
En el estilo aplicado al control personalizado ...
<Setter Property="ChromeContent">
<Setter.Value>
<Grid />
</Setter.Value>
</Setter>
...
Más tarde, en la plantilla de control ...
<ContentPresenter Grid.Column="0"
x:Name="ChromeContentPresenter"
Content="{TemplateBinding ChromeContent}" />
Aquí está la dependencia pro perty para 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);
Como puede ver, se necesita cualquier objeto. Traté de cambiarlo a una rejilla, pero eso no ayudó.
que arroja este error (de Javascript): _Failed para asignar a la propiedad 'System.Windows.Controls.ContentPresenter.Content'
Curiosamente, la siguiente funcionará bien si quito la cuadrícula en el colocador nd solo el uso de texto:
<Setter Property="ChromeContent" Value="DEFAULT" />
Además, este también funcionará a partir del método OnApplyTemplate en la clase de control:
Grid g = new Grid();
g.Width = 100;
g.Height = 25;
g.Background = new SolidColorBrush(Colors.LightGray);
ChromeContent = g;
estoy teniendo un tiempo difícil unders indicando qué es lo que impide que funcione el contenido predeterminado de una grilla, definido en generic.xaml. ¿Alguien tiene algún conocimiento sobre este asunto?
¡Muchas gracias de antemano por su ayuda!
Guau, muy interesante. No sabía esto. Una pregunta de seguimiento si puedo: ¿cómo podría hacer esto con la plantilla de control? Cuando intento colocar el marcado predeterminado en ContentPresenter, no puedo agregar cosas como cuadrículas y demás. Quiero que el contenido del usuario anule el mío si lo proporcionan, así que no estoy seguro de a dónde ir desde aquí. – maulkye
Entendido. ¡Muchas gracias por tu ayuda! – maulkye