2009-08-26 63 views
1

我做了這個UpButton.xaml文件通過從我們的圖形傢伙做的.ai文件轉換它,但我只是無法得到它的工作。 我正在考慮爲按鈕製作某種模板/樣式,但我們的按鈕由矩形組成,而不是按鈕對象。如何讓這個xaml工作從app.xaml

自從上週四以來,我一直在擺弄這件事,搜索了一下,並嘗試了所有我發現的東西,但它不起作用。

我們希望在一個單獨的xaml文件中將其作爲'資源',然後將其添加到app.xaml中,並讓它在整個應用程序中繪製所有矩形。 我們正在構建的應用程序應該使用xaml和儘可能小的C#編碼。

任何人都可以幫助我得到這個東西的工作?

THX讓我知道的代碼示例:)

<?xml version="1.0" encoding="utf-8"?> 
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <DrawingBrush x:Key="UnnamedObject0" Stretch="Uniform"> 
     <DrawingBrush.Drawing> 
      <DrawingGroup> 
       <DrawingGroup.Children> 
        <GeometryDrawing Geometry="F1 M 141.781,503.813C 140.737,503.813 139.891,504.659 139.891,505.703L 139.891,524.601C 139.891,525.645 140.737,526.491 141.781,526.491L 160.679,526.491C 161.723,526.491 162.568,525.645 162.568,524.601L 162.568,505.703C 162.568,504.659 161.723,503.813 160.679,503.813L 141.781,503.813 Z "> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="0.499992,-1.61488e-005" EndPoint="0.499992,1"> 
           <LinearGradientBrush.GradientStops> 
            <GradientStop Color="#FFD1D3D4" Offset="0"/> 
            <GradientStop Color="#FFFFFFFF" Offset="1"/> 
           </LinearGradientBrush.GradientStops> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z "> 
         <DrawingGroup.Children> 
          <GeometryDrawing Geometry="F1 M 139.891,505.703C 139.891,504.659 140.737,503.814 141.781,503.814L 160.679,503.814C 161.723,503.814 162.568,504.659 162.568,505.703L 162.568,524.6C 162.568,525.644 161.723,526.491 160.679,526.491L 141.781,526.491C 140.737,526.491 139.891,525.644 139.891,524.6L 139.891,505.703 Z "> 
           <GeometryDrawing.Pen> 
            <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFA7A9AC"/> 
           </GeometryDrawing.Pen> 
          </GeometryDrawing> 
         </DrawingGroup.Children> 
        </DrawingGroup> 
        <GeometryDrawing Geometry="F1 M 144.048,506.081C 143.005,506.081 142.159,506.927 142.159,507.969L 142.159,522.333C 142.159,523.377 143.005,524.223 144.048,524.223L 158.412,524.223C 159.455,524.223 160.301,523.377 160.301,522.333L 160.301,507.969C 160.301,506.927 159.455,506.081 158.412,506.081L 144.048,506.081 Z "> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="0.499951,1.00003" EndPoint="0.499951,-3.36442e-006"> 
           <LinearGradientBrush.GradientStops> 
            <GradientStop Color="#FFE6E8E8" Offset="0"/> 
            <GradientStop Color="#FFFFFFFF" Offset="1"/> 
           </LinearGradientBrush.GradientStops> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <GeometryDrawing Geometry="F1 M 144.645,515.816L 147.521,515.816L 147.521,521.56L 151.24,521.56L 154.939,521.56L 154.939,515.816L 157.813,515.816L 151.219,508.743L 144.645,515.816 Z "> 
         <GeometryDrawing.Brush> 
          <LinearGradientBrush StartPoint="0.499986,1.00003" EndPoint="0.499986,5.23812e-005"> 
           <LinearGradientBrush.GradientStops> 
            <GradientStop Color="#FF50C400" Offset="0"/> 
            <GradientStop Color="#FF91F456" Offset="1"/> 
           </LinearGradientBrush.GradientStops> 
          </LinearGradientBrush> 
         </GeometryDrawing.Brush> 
        </GeometryDrawing> 
        <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z "> 
         <DrawingGroup.Children> 
          <GeometryDrawing Geometry="F1 M 151.24,521.56L 147.521,521.56L 147.521,515.815L 144.646,515.815L 151.218,508.743L 157.814,515.815L 154.938,515.815L 154.938,521.56L 151.24,521.56 Z "> 
           <GeometryDrawing.Pen> 
            <Pen Thickness="1.33333" LineJoin="Round" Brush="#FF076F00"/> 
           </GeometryDrawing.Pen> 
          </GeometryDrawing> 
         </DrawingGroup.Children> 
        </DrawingGroup> 
       </DrawingGroup.Children> 
      </DrawingGroup> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 
</ResourceDictionary> 
+0

所以它是正確的郵政它,我將修改它。但是,您可以將其全部複製到文本框中,選中它,然後單擊看起來像'1010'的按鈕。 – 2009-08-26 06:56:59

+0

要發佈代碼示例,只需將xmal粘貼到編輯窗口中,突出顯示代碼部分,然後按代碼示例按鈕。這將爲您設置格式。 – 2009-08-26 06:58:34

回答

2

你需要把它像一個風格:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Style TargetType="{x:Type Rectangle}"> 
     <Setter Property="Fill"> 
      <Setter.Value> 
       <DrawingBrush Stretch="Uniform"> 
        <DrawingBrush.Drawing> 
         <DrawingGroup> 
          <DrawingGroup.Children> 
           <GeometryDrawing Geometry="F1 M 141.781,503.813C 140.737,503.813 139.891,504.659 139.891,505.703L 139.891,524.601C 139.891,525.645 140.737,526.491 141.781,526.491L 160.679,526.491C 161.723,526.491 162.568,525.645 162.568,524.601L 162.568,505.703C 162.568,504.659 161.723,503.813 160.679,503.813L 141.781,503.813 Z "> 
            <GeometryDrawing.Brush> 
             <LinearGradientBrush StartPoint="0.499992,-1.61488e-005" EndPoint="0.499992,1"> 
              <LinearGradientBrush.GradientStops> 
               <GradientStop Color="#FFD1D3D4" Offset="0"/> 
               <GradientStop Color="#FFFFFFFF" Offset="1"/> 
              </LinearGradientBrush.GradientStops> 
             </LinearGradientBrush> 
            </GeometryDrawing.Brush> 
           </GeometryDrawing> 
           <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z "> 
            <DrawingGroup.Children> 
             <GeometryDrawing Geometry="F1 M 139.891,505.703C 139.891,504.659 140.737,503.814 141.781,503.814L 160.679,503.814C 161.723,503.814 162.568,504.659 162.568,505.703L 162.568,524.6C 162.568,525.644 161.723,526.491 160.679,526.491L 141.781,526.491C 140.737,526.491 139.891,525.644 139.891,524.6L 139.891,505.703 Z "> 
              <GeometryDrawing.Pen> 
               <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFA7A9AC"/> 
              </GeometryDrawing.Pen> 
             </GeometryDrawing> 
            </DrawingGroup.Children> 
           </DrawingGroup> 
           <GeometryDrawing Geometry="F1 M 144.048,506.081C 143.005,506.081 142.159,506.927 142.159,507.969L 142.159,522.333C 142.159,523.377 143.005,524.223 144.048,524.223L 158.412,524.223C 159.455,524.223 160.301,523.377 160.301,522.333L 160.301,507.969C 160.301,506.927 159.455,506.081 158.412,506.081L 144.048,506.081 Z "> 
            <GeometryDrawing.Brush> 
             <LinearGradientBrush StartPoint="0.499951,1.00003" EndPoint="0.499951,-3.36442e-006"> 
              <LinearGradientBrush.GradientStops> 
               <GradientStop Color="#FFE6E8E8" Offset="0"/> 
               <GradientStop Color="#FFFFFFFF" Offset="1"/> 
              </LinearGradientBrush.GradientStops> 
             </LinearGradientBrush> 
            </GeometryDrawing.Brush> 
           </GeometryDrawing> 
           <GeometryDrawing Geometry="F1 M 144.645,515.816L 147.521,515.816L 147.521,521.56L 151.24,521.56L 154.939,521.56L 154.939,515.816L 157.813,515.816L 151.219,508.743L 144.645,515.816 Z "> 
            <GeometryDrawing.Brush> 
             <LinearGradientBrush StartPoint="0.499986,1.00003" EndPoint="0.499986,5.23812e-005"> 
              <LinearGradientBrush.GradientStops> 
               <GradientStop Color="#FF50C400" Offset="0"/> 
               <GradientStop Color="#FF91F456" Offset="1"/> 
              </LinearGradientBrush.GradientStops> 
             </LinearGradientBrush> 
            </GeometryDrawing.Brush> 
           </GeometryDrawing> 
           <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z "> 
            <DrawingGroup.Children> 
             <GeometryDrawing Geometry="F1 M 151.24,521.56L 147.521,521.56L 147.521,515.815L 144.646,515.815L 151.218,508.743L 157.814,515.815L 154.938,515.815L 154.938,521.56L 151.24,521.56 Z "> 
              <GeometryDrawing.Pen> 
               <Pen Thickness="1.33333" LineJoin="Round" Brush="#FF076F00"/> 
              </GeometryDrawing.Pen> 
             </GeometryDrawing> 
            </DrawingGroup.Children> 
           </DrawingGroup> 
          </DrawingGroup.Children> 
         </DrawingGroup> 
        </DrawingBrush.Drawing> 
       </DrawingBrush> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

然後在你的App.xaml包括資源爲:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/RectStyle.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

如果不設置x:在<Style>資源鍵將修改所有Rectangl es在您的應用程序中使用指定的填充... 如果您想爲矩形添加更多樣式,則需要將x:Key =「RectStyle1」屬性添加到<Style>,並指定矩形需要使用的樣式:

<Rectangle Style="{StaticResource RectStyle1}" /> 

玩得開心:)

+0

是的工作,認爲我嘗試了所有這一切,但我不能有:P 非常感謝 – MemoryToLow 2009-08-26 08:59:15

+0

如果你不是在等待另一個答案,請將此標記爲答案... – Zenuka 2009-08-26 12:27:46