2013-01-31 4 views
0

Это является продолжением вопроса What is the correct way to define classes in Xaml?Как определить ресурсы для пользовательских классов

мне удалось получить ресурсы работы, получать удовольствие прямо сейчас. Но я понимаю, что я должен определить ресурс как часть класса Window таким образом, я видел несколько образцов, и они, похоже, используют либо UserControl, Applicaion, либо Window для инкапсуляции ресурсов. Это имеет смысл, поскольку ресурсы будут использоваться в пользовательском интерфейсе, но я хочу спросить, можно ли определить ресурсы как часть пользовательских классов? Если у меня есть класс Person, могу ли я определить ресурсы для него с помощью XAML? используя Person.Xaml и Person.Xaml.cs?

+0

Просто из curiosity-. зачем вы хотите это сделать? Ресурсы xaml, которые вы определяете, действительно не полезны вне контекста пользовательского интерфейса – Nicros

ответ

0

Ну, это немного сложно, если Person - это просто класс, в котором он не будет иметь никакого аргументирующего файла Xaml.

Один из способов хранения ваших ресурсов в вашем App.Xaml, тогда вы сможете получить доступ к ним из любого места приложения.

Пример:

App.xaml

<Application x:Class="WpfApplication13.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <Storyboard x:Key="MyAnimation" Storyboard.TargetProperty="Opacity"> 
      <DoubleAnimation From="0" To="1" Duration="0:0:5" /> 
     </Storyboard> 
    </Application.Resources> 
</Application> 

класс Person

public class Person 
{ 
    public Person() 
    { 
     var storyboard = (Storyboard)Application.Current.Resources["MyAnimation"]; 
    } 
} 

Другой способ создать свой собственный Resource.Dictionaries и загружать их в

+0

, как я могу создать свой собственный Resource.Dictionaries, это тоже файл .Xaml? –

+0

Я предлагаю посмотреть на эту ссылку, так как мой ответ выходит за рамки этого комментария :) http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/03/creating-and-consuming-resource- словари-в-МОФ-и-silverlight.aspx –

0

Вы можете добавить словарь ресурсов (Добавить новый элемент типа Resource Dictionary) и может иметь все ваши ресурсы в этом файле XAML. Хорошая практика заключается в том, чтобы определять ваши ресурсы многократного использования в словаре ресурсов и использовать их там, где вам нужно.

Смежные вопросы