2011-06-02 72 views
1

我遇到ControlTemplates問題。圖像不會出現在按鈕上ControlTemplate WPF

當我嘗試在按鈕中放置圖像時,圖像不會出現在應用程序中。這裏的風格:

<Style x:Key="FocusVisual"> 
     <Setter Property="Control.Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Control}"> 
        <Grid Margin="3 2"> 
         <Rectangle Name="r1" StrokeThickness="1" Stroke="Black" StrokeDashArray="2 2"/> 
         <Border Name="border" Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding ActualHeight}" CornerRadius="130" BorderThickness="1" /> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

    <Style x:Key="ShadowStyle"> 
     <Setter Property="Control.Foreground" Value="LightGray" /> 
    </Style> 

    <Style x:Key="roundedButtonStyle" TargetType="Button"> 

     <Setter Property="OverridesDefaultStyle" Value="True"/> 
     <Setter Property="FontFamily" Value="Verdana"/> 
     <Setter Property="FontSize" Value="11px"/> 
     <Setter Property="FontWeight" Value="Bold"/> 
     <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" /> 

     <Setter Property="Background" > 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6" > 
        <GradientStop Color="#FFEEEEEE" Offset="0.2"/> 
        <GradientStop Color="#FFDDDDDD" Offset="0.85"/> 
        <GradientStop Color="#FFCCCCCC" Offset="1"/> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 

     <Setter Property="Template"> 

      <Setter.Value> 

       <ControlTemplate TargetType="{x:Type Button}"> 
        <Border Name="border" BorderThickness="1" Padding="4,2" BorderBrush="#FFCCCCCC" CornerRadius="130,130,130,130" Background="{TemplateBinding Background}"> 
         <Grid > 
          <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="contentShadow" Style="{StaticResource ShadowStyle}"> 
           <ContentPresenter.RenderTransform> 
            <TranslateTransform X="1.0" Y="1.0" /> 
           </ContentPresenter.RenderTransform> 
          </ContentPresenter> 
          <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="content"/> 
         </Grid> 
        </Border> 

        <ControlTemplate.Triggers> 

         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" /> 
          <Setter Property="Foreground" Value="#FF4788c8" /> 
         </Trigger> 

         <Trigger Property="IsPressed" Value="True"> 

          <Setter Property="Background" > 
           <Setter.Value> 
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6" > 
             <GradientStop Color="#FF87BEF5" Offset="0.2"/> 
             <GradientStop Color="AliceBlue" Offset="0.85"/> 
             <GradientStop Color="#FF87BEF5" Offset="1"/> 
            </LinearGradientBrush> 
           </Setter.Value> 
          </Setter> 

          <Setter TargetName="content" Property="RenderTransform" > 
           <Setter.Value> 
            <TranslateTransform Y="1.0" /> 
           </Setter.Value> 
          </Setter> 
         </Trigger> 

         <Trigger Property="IsDefaulted" Value="True"> 
          <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
         </Trigger> 

         <Trigger Property="IsFocused" Value="True"> 
          <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
         </Trigger> 

         <Trigger Property="IsEnabled" Value="False"> 
          <Setter TargetName="border" Property="Opacity" Value="0.7" /> 
          <Setter Property="Foreground" Value="Gray" /> 
         </Trigger> 

        </ControlTemplate.Triggers> 

       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 

    </Style>   

我嘗試把圖像中的按鈕,像這樣:

  <Button Name="btnZoom" Style="{StaticResource roundedButtonStyle}" Width="25" Height="25" Margin="5" Click="btnZoom_Click"> 
       <StackPanel> 
        <Image Source="/Resources/lupa.png"/> 
       </StackPanel> 
      </Button> 

在Visual Studio 2010中的可視化編輯器的圖像顯示,但是當我運行應用程序圖像不在那裏。

請原諒我可怕的英語。

Thanx。

回答

0

無法重現它。

在一個測試項目中嘗試一下,你的上下文可能會出錯,試着縮小這個問題的範圍。

1

確保圖像的生成操作設置爲資源(不是內容或嵌入式資源)

+0

謝謝。這解決了我的問題。 – clluiz 2011-06-04 12:53:33

+0

沒問題。請正確勾選此答案,以便其他人可能會受益。 – 2011-06-04 13:33:43