SORU
26 AĞUSTOS 2009, ÇARŞAMBA


Nasıl WPF kullanıcı denetimi ithal ve yerli kaynakları birleştirmek için

Ortak ve bireysel kaynaklar, ikimizin de ihtiyacı olan WPF kullanıcı denetimleri birkaç yazıyorum.

Ayrı bir kaynak dosyası yükleme kaynaklarını sözdizimi anladım:

<UserControl.Resources>
    <ResourceDictionary Source="ViewResources.xaml" />
</UserControl.Resources>

Bunu yaparken, ancak, aynı zamanda kaynakları, gibi yerel olarak Ekle edemem:

<UserControl.Resources>
    <ResourceDictionary Source="ViewResources.xaml" />
    <!-- Doesn't work: -->
    <ControlTemplate x:Key="validationTemplate">
        ...
    </ControlTemplate>
    <style x:key="textBoxWithError" TargetType="{x:Type TextBox}">
        ...
    </style>
    ...
</UserControl.Resources>

ResourceDictionary bir göz geçirdim.MergedDictionaries, ama bu sadece beni daha fazla dış sözlük birleştirme, daha fazla kaynakları yerel olarak tanımlamak sağlar.

Önemsiz bir şey eksik olmalı?

Belirtilmelidir: Win bir projede benim kullanıcı denetimleri, Uygulama paylaşılan kaynaklar koyarak ev sahipliği yapıyorum.xaml gerçekten bir seçenek değil.

CEVAP
26 AĞUSTOS 2009, ÇARŞAMBA


Anladım. Çözüm MergedDictionaries içerir, ancak ayrıntılarda doğru, böyle olmalı:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ViewResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <!-- This works: -->
        <ControlTemplate x:Key="validationTemplate">
            ...
        </ControlTemplate>
        <style x:key="textBoxWithError" TargetType="{x:Type TextBox}">
            ...
        </style>
        ...
    </ResourceDictionary>
</UserControl.Resources>

Bu, yerel kaynakları iç içe olması gerekiriçindeResourceDictionary etiketi. Örnek here yanlıştır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010