Ho uno stile per un blocco di testo che è impostato all'interno della mia app.xaml, quindi viene applicato al blocco di testo attraverso la mia applicazione e funziona correttamente.Non è possibile utilizzare lo stile App.xaml in Usercontrol, come mai?
Tuttavia ottengo un errore: "impossibile creare istanza di tipo" se applico questo stile a un blocco di testo all'interno del mio controllo utente, come mai questo è un problema?
<UserControl x:Class="Client.Usercontrols.MyButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MinHeight="30" MinWidth="40"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Button Width="Auto" HorizontalAlignment="Center">
<Border CornerRadius="5" BorderThickness="1" BorderBrush="Transparent" >
<Grid>
<Image Name="tehImage" Source="{Binding ImageSource}" />
<TextBlock Name="tehText" Text="{Binding Text}"
Style="{StaticResource ButtonText}" /> <-- This causes error
</Grid>
</Border>
</Button>
Grazie, Kohan
- Codice App.xaml -
<Application x:Class="Client.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Mainpage.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/CascadingStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
- CascadingStyles.Xaml -
<Style TargetType="{x:Type TextBlock}" x:Key="ButtonText" >
<Setter Property="FontSize" Value="10" />
<Setter Property="VerticalAlignment" Value="Bottom" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontFamily" Value="Lucida Sans Unicode" />
<Setter Property="Foreground" Value="#0F004E" />
</Style>
Sono passato a DynamicResource come suggerito e funziona, funziona anche se imposto lo stile in Appena fuori interesse, come mai lo scope di App.Config non raggiunge un UserControl ma raggiunge tutti i controlli in qualsiasi pagina o finestra? –
4imble
in pratica, devi pensare a un UserControl come entità indipendente. Potrebbe, ad esempio, vivere in un'assemblea diversa. Un controllo personalizzato funziona allo stesso modo. Sanno solo quello che dici loro. Idealmente, dovresti inserire i tuoi stili in un ResourceDicationary e includerli dove ti servono: l'app.xaml, il controllo utente, ecc. Questo rende più facile "skinare" o "tema" i tuoi contenuti - basta scambiare risorse dizionari. –
Ah, okay. Ha senso. Grazie – 4imble