2013-11-13 2 views
0

Iv'e получил прямоугольник в моем словаре ресурсов, который я хотел бы разместить в многочисленных Грид объектовWpf - Использование Shapes как ресурс

<Rectangle HorizontalAlignment="Left" Width="10" x:Key="ShadowRect"> 
    <Rectangle.Fill> 
     <LinearGradientBrush EndPoint="1.7,0.603" StartPoint="0.3,0.603"> 
      <GradientStop Color="White" Offset="1"/> 
     <GradientStop Color="Black" Offset="0.009"/>      
     </LinearGradientBrush> 
    </Rectangle.Fill>        
</Rectangle> 

Теперь, конечно, я мог бы поместить его непосредственно следующим образом:

<Grid> 
    <Rectangle HorizontalAlignment="Left" Width="10" > 
     <Rectangle.Fill> 
      <LinearGradientBrush EndPoint="1.7,0.603" StartPoint="0.3,0.603"> 
       <GradientStop Color="White" Offset="1"/> 
      <GradientStop Color="Black" Offset="0.009"/>     
      </LinearGradientBrush> 
     </Rectangle.Fill>        
    </Rectangle> 
</Grid> 

, но я хотел бы использовать его в качестве ресурса, так что я не должен писать этот код XAML для каждой сетки,

как я могу поместить прямоугольник, используя это ключевой ресурс?

+0

Как об определении его в качестве шаблона управления, а затем использовать этот шаблон управления как ресурс? – whoisthis

+0

как, может быть, определение его как стиля для ContentControl, хорошая идея. –

ответ

2

Вы могли бы иметь прямоугольник стиль вместо прямоугольника в вашем ResourceDictionary:

<Style x:Key="ShadowRectStyle" TargetType="Rectangle"> 
    <Setter Property="HorizontalAlignment" Value="Left"/> 
    <Setter Property="Width" Value="10"/> 
    <Setter Property="Fill"> 
     <Setter.Value> 
      <LinearGradientBrush EndPoint="1.7,0.603" StartPoint="0.3,0.603"> 
       <GradientStop Color="White" Offset="1"/> 
       <GradientStop Color="Black" Offset="0.009"/> 
      </LinearGradientBrush> 
     </Setter.Value> 
    </Setter> 
</Style> 

Затем использовать его как это:

<Grid> 
    <Rectangle Style="{StaticResource ShadowRectStyle}"/> 
</Grid> 
+0

Я не знаю, почему я об этом не думал .. спасибо. –