как использовать ресурс приложения в пользовательском контроле xaml - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть app.xml с некоторыми ресурсами, такими как:

<Application.Resources>
    <con:EnumToVisibilityConverter x:Key="EnumToVisibilityConverter" />
    <con:NegateBoolConverter x:Key="NegateBoolConverter" />
    <Style TargetType="FrameworkElement" x:Key="BaseStyle">
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="VerticalAlignment" Value="Stretch" />
        <Setter Property="Margin" Value="3"/>
        <Setter Property="Width" Value="120"/>
        <Setter Property="Height" Value="25" />
    </Style>
    <Style TargetType="CheckBox" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <Style TargetType="DatePicker" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <Style TargetType="TextBox" BasedOn="{StaticResource BaseStyle}">

    </Style>
    <Style TargetType="Label"  BasedOn="{StaticResource BaseStyle}">

    </Style>

    <Style TargetType="Button" BasedOn="{StaticResource BaseStyle}">
        <Setter Property="Width" Value="75" />
        <Setter Property="Height" Value="23" />
        <Setter Property="Margin" Value="5,2,2,5" />
        <Setter Property="HorizontalAlignment" Value="Left" />
        <Setter Property="VerticalAlignment" Value="Top" />
    </Style>

</Application.Resources>

Я хочу использовать их в своем пользовательском элементе управления xaml следующим образом:

 <UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="App.xaml" />
        </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
 </UserControl.Resources>

Поскольку мой пользовательский элемент управления xaml находится в каталоге View, приведенный выше синтаксис упомянутого выше не принимается системой и жаловался, что не может найти view / app.xaml. Как я могу добавить путь к источнику, чтобы он мог его найти?

1 Ответ

1 голос
/ 30 декабря 2011

Вам не нужно этого делать. Ресурсы приложения доступны по всему приложению, поэтому все, что вам нужно сделать, это либо в xaml:

Style="{StaticResource BaseStyle}"

Или это в C # (внутри кода вашего элемента управления):

Style baseStyle = (Style)this.FindResource("BaseStyle");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...