2010-04-15 21 views
8

Visual Studio 2010 Express'te (C#) bir WPF uygulaması oluşturdum ve aşağıdaki metni App.xaml'deki Application.Resources dosyasına ekledim. Tasarımcıda pencereye uygulanan stili görüyorum, ancak uygulamayı çalıştırdığımda, pencere arka planı beyazdır.WPF Pencere Stili çalışma zamanında çalışmaz

Bu bir etken ise MacBook Pro'da Windows XP'de BootCamp üzerinde çalışıyor. Aşağıdaki kafanız

<Style TargetType="{x:Type Window}"> 
     <Setter Property="Background"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
        <GradientStop Offset="0" Color="WhiteSmoke" /> 
        <GradientStop Offset="1" Color="Silver" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 

     <Setter Property="Padding" Value="20" /> 
    </Style> 

cevap

10

Microsoft, bu sorunu yineledi ve WPF 4.0'da bir hata olabileceği görünüyor. hata gönderilen kişi tarafından yapılan bir araştırmaya ardından

https://connect.microsoft.com/VisualStudio/feedback/details/555322/global-wpf-styles-are-not-shown-when-using-2-levels-of-references

, ben birleştirilmiş kaynak sözlüğüne dahil edilmiştir bireysel XAML kaynak dosyaların tümü aldı ve kesip tek UberStyles içine tarzı metni yapıştırın. xaml dosyası. Birleştirilmiş Sözlüğün tüm kullanımından kaçındım.

Bu sorun çözüldü ve WPF 3.5 uygulamamdaki stil bilgilerim WPF 4.0 uygulamasına karşı geri döndü.

Gözlerime göre bu, WPF 4.0'da net bir hatadır - bunu nasıl bir özellik olarak kullandığınızdan tam olarak emin değilim ve davranış belgesiz. Bunun bir sonucu olarak WPF 4.0 platformu için bunun etkilerinden biraz endişeliyim. Bunun Visual Studio 2010 Sürümünün test edilmesinde yakalanmış olabileceğini düşünürdünüz! Her neyse, bu yardımcı olur umarım. İki hafta önce VS2010'a geçtiğimizden beri bu hatadan deliriyorum.

0

Hıristiyan önceden

sayesinde:

How to set default WPF Window Style in app.xaml?

cevabı bir stil türetilmiş türlerine uygulanmaz olmasıdır.

+1

Bunun cevabın olduğundan emin değilim. Aşağıdaki gönderiye bakın ... aslında bir böcek gibi görünüyor. – JasonD

0

Aynı sorunu yaşıyorum. Her standart kontrol için özel stiller içeren bir kütüphane geliştirdik, hem de deigner hem de çalışma zamanında .net 3.5 altında gayet iyi çalışıyor. Bugün projelerimizi .net4'e (wpf 4'ün birçok yeni güzelliği) geçirmeye karar verdik. Bundan sonra zamanında bu çalışma zamanında çalışan, ancak tasarımcı uygulamayanlarda gibi tüm stilleri: Anahtar çalışma cezası: setted x ile

<Style TargetType={x:Type Button}> 
     <Setter Property="FontSize" Value="14"/> 
</Style> 

Stiller. Ancak bir tema için varsayılan stili belirlememiz gerekiyor, her kontrol için ayarlamayız.

+0

Standart kontrolleri mi kullanıyorsunuz yoksa standart kontrollerden mi sınıflandırılıyorsunuz? Onlardan miras alırsanız aşağıdaki cevabım size içgörü verecektir. Aksi halde, WPF uygulamalarını 3.5'den 4'e yükseltmenin neyle ilgili olduğunu bilmediğimden emin değilim. –