Bu oldukça belirsiz bir şey, sadece çok basit bir şey eksik olabilir.WPF kaynaklarını diğer kaynak etiketlere atama
<LinearGradientBrush x:Key="GridRowSelectedBackBrushGradient" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#404040" Offset="0.0" />
<GradientStop Color="#404040" Offset="0.5" />
<GradientStop Color="#000000" Offset="0.6" />
<GradientStop Color="#000000" Offset="1.0" />
</LinearGradientBrush>
Sonra çok sonraları, ben bir DataGrid için HighlightBrushKey
geçersiz kılmak istiyorum:
Senaryo 1
benim <Window.Resources>
bölümünde böyle bir degrade fırça oluşturmak düşünelim. Ben bunu basitçe yaptım (korkunç);
<LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
GradientStops="{Binding Source={StaticResource GridRowSelectedBackBrushGradient}, Path=GradientStops}"
StartPoint="{Binding Source={StaticResource GridRowSelectedBackBrushGradient}, Path=StartPoint}"
EndPoint="{Binding Source={StaticResource GridRowSelectedBackBrushGradient}, Path=EndPoint}" />
Bu, bir kaynağa başvurmanın en kaygan yoludur. Ben de hemen hemen aynı olan aşağıdaki problemi buldum. Ben üzerinde ConverterParameter besleyen bir Array, bunları tedarik etmek isteyen sonradan Sonra
<SolidColorBrush x:Key="DataGridRowBackgroundBrush" Color="#EAF2FB" />
<SolidColorBrush x:Key="DataGridRowBackgroundAltBrush" Color="#FFFFFF" />
: Senaryo 2
benim <Window.Resources>
işaretlemesinde iki renk oluşturdu şöyle Say Bir Bağlayıcı böylece benim statik kaynak örnekleri ile özel Dönüştürücü sağlayabilmektedir:
<Setter Property="Background">
<Setter.Value>
<Binding RelativeSource="{RelativeSource Mode=Self}"
Converter="{StaticResource BackgroundBrushConverter}">
<Binding.ConverterParameter>
<x:Array Type="{x:Type Brush}">
<SolidColorBrush Color="{Binding Source={StaticResource DataGridRowBackgroundBrush}, Path=Color}" />
<SolidColorBrush Color="{Binding Source={StaticResource DataGridRowBackgroundAltBrush}, Path=Color}" />
</x:Array>
</Binding.ConverterParameter>
</Binding>
</Setter.Value>
</Setter>
Ne yaptım e varolan bir kaynağa başvurma girişimidir, ancak çabalarımda aslında kaynağı yeniden oluşturdum ve özellikleri eşleştirdik. Yine, bu ideal değil.
Şimdi bu soruna en az iki kez vurdum, daha iyi bir yolu var mı? Birlikte çalıştığınız biçimlendirme yeterince yukarı gitmez
Teşekkürler Tom
Evet, Ray bu kadar! Biraz benim için xaml ile üzülmeme izin verin ve nasıl devam edeceğimi size bildiririm. Benim bildiğim kadarıyla, bu cevap! Teşekkürler! – Tom
Tamam, Window.Resources kendisinin bir ResourceDictionary olduğu gibi, ben sadece benim botched kaynak kopyaları StaticResourceExtension ile değiştirdim ve sadece çalışır. Bu sihir, çok teşekkür ederim. – Tom
Bu işe yaramazsa, geçici ve geçici derleyici hatalarını artırır: "System.Windows.StaticResourceExtension" türünde bir nesne, "System.Windows.Media.Color" türünü bekleyen bir özelliğe uygulanamaz. Bunlar gelir ve gider - bazen bir yapıdan sonra da devam eder ve birbiri ardına kaybolurlar. –