Perché non funziona?Silverlight Contenuto predefinito Contenuto Presentatore
In generic.xaml per un controllo personalizzato:
Nello stile applicato al controllo personalizzato ...
<Setter Property="ChromeContent">
<Setter.Value>
<Grid />
</Setter.Value>
</Setter>
...
Più tardi, nel modello di controllo ...
<ContentPresenter Grid.Column="0"
x:Name="ChromeContentPresenter"
Content="{TemplateBinding ChromeContent}" />
Ecco la dipendenza pro perty per 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);
Come puoi vedere, prende qualsiasi oggetto. Ho provato a cambiarlo in una griglia, ma questo non ha aiutato.
getta questo errore (da javascript): _Failed da assegnare alla proprietà 'System.Windows.Controls.ContentPresenter.Content'
Stranamente, il seguente funziona bene se mi tolgo la griglia dal setter appena nd uso di testo:
<Setter Property="ChromeContent" Value="DEFAULT" />
Inoltre, questo funzionerà anche dal metodo OnApplyTemplate nella classe di controllo:
Grid g = new Grid();
g.Width = 100;
g.Height = 25;
g.Background = new SolidColorBrush(Colors.LightGray);
ChromeContent = g;
sto avendo un duro under tempo tanding ciò che impedisce il contenuto predefinito di una griglia, definito in generic.xaml dal lavoro. Qualcuno ha qualche conoscenza su questo argomento?
Molte grazie in anticipo per il vostro aiuto!
Wow, molto interessante. Non lo sapevo Una domanda di follow-up se posso: come farei questo con il modello di controllo? Quando tento di inserire il markup di default in ContentPresenter, non posso aggiungere cose come griglie o altro. Voglio che il contenuto dell'utente sostituisca il mio se lo fornisce, quindi non sono sicuro di dove andare da qui. – maulkye
Capito. Grazie mille per il vostro aiuto! – maulkye