Jak mohu nechat své UserControls používají stejné styly jako App.xaml?

hlasů
1

Mám UserControl s ohraničením prvku v tom, že chci styl s konkrétní pohraniční stylu. Sestavuje ale nenastartuje, dávat XamlParseException, řka: „Nelze najít zdroj ...“

Existuje způsob, jak to udělat?

Dík.

App.xaml:

<cal:CaliburnApplication x:Class=WahnamProgressTracker.App
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:cal=http://www.caliburnproject.org
xmlns:Converters=clr-namespace:WahnamProgressTracker.Converters;assembly=WahnamProgressTracker
xmlns:Model=clr-namespace:WahnamProgressTracker.Model>
<Application.Resources>
    <Style x:Key=FancyBorder
           TargetType={x:Type Border}>
        <Setter Property=Margin Value=0,0,0,8/>
        <Setter Property=Padding Value=8/>
        ...
    </Style>
</Application.Resources>

MainView.xaml:

<Window x:Class=WahnamProgressTracker.Views.MainView
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:cal=http://www.caliburnproject.org
xmlns:uc=clr-namespace:WahnamProgressTracker.UserControls
MinHeight=500 MinWidth=800>

<DockPanel>
    <uc:MainViewMenu x:Name=menu
                     DockPanel.Dock=Top />

    <StatusBar x:Name=quoteBar                   
               DockPanel.Dock=Bottom>
        <TextBlock Text={Binding Path=Quote.Text, Mode=OneWay} />
    </StatusBar>

    <uc:MainViewNavigation x:Name=navigationBar
                           DockPanel.Dock=Left />

    <uc:ProgressGraph x:Name=graph />
</DockPanel>

MainViewNavigation.xaml (kontrola uživatele):

<UserControl x:Class=WahnamProgressTracker.UserControls.MainViewNavigation
    xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
    xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml>

    <Border Style={StaticResource FancyBorder}>
        ...       
    </Border>    
</UserControl>
Položena 27/08/2009 v 01:08
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Můžete přidat vzorek toho, co máte na mysli? Jediný případ, kdy může váš problém nastat, je-li je vytvořen Řízení uživatelských a potom poskytnutý mimo vizuální stromu vaší aplikace.

Níže uvedená XAML pracuje pro mě:

App.xaml:

<Application x:Class="WpfApplication1.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 StartupUri="Window1.xaml">
    <Application.Resources>
        <Style TargetType="{x:Type TextBlock}" x:Key="myStyle">
            <Setter Property="Foreground" Value="Green" />
            <Setter Property="FontWeight" Value="Bold" />
        </Style>
    </Application.Resources>
</Application>

Window1.xaml:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:local="clr-namespace:WpfApplication1"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <local:UserControl1 />
    </Grid>
</Window>

UserControl1.xaml:

<UserControl x:Class="WpfApplication1.UserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300">
    <Grid>
        <TextBlock Style="{StaticResource myStyle}">HEY!</TextBlock>
    </Grid>
</UserControl>
Odpovězeno 27/08/2009 v 01:23
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more