2012-01-26 44 views
0

我正在寫了下面的XAML代碼:Button控件模板不工作

<Window x:Class="ImageScrollDemo.View.TestWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="TestWindow" Height="300" Width="300"> 
    <Window.Resources> 
     <Style x:Key="NextImageButtonStyle" TargetType="Button"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Image Source="..\Images\#next.png" RenderOptions.BitmapScalingMode="HighQuality" /> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Resources> 
    <Grid> 
     <Button Style="{DynamicResource NextImageButtonStyle}" /> 
    </Grid> 
</Window> 

窗口呈現空白。我不明白爲什麼。

回答

1
<Image Source="..\Images\#next.png" ... /> 

檢查圖像的文件名並確認它確實包含#字符。

同時,儘量使用靜態資源:

<Button Style="{StaticResource NextImageButtonStyle}" /> 
+0

這沒有奏效Bernard ....圖像文件確實有#前綴。我能夠在VS的設計視圖中看到圖像,但是當我運行應用程序時,窗口是空白的。 – Lucifer

+0

非常有趣。如果您從頭創建一個新窗口並使用上面的XAML,它會在WPF設計器中呈現嗎?如果是這樣,我不明白爲什麼它不會在Visual Studio之外渲染。 – Bernard

+0

以及我得到它的工作......我只是從圖像文件名稱和從XAML圖像源中刪除#前綴,現在它正在渲染圖像。謝謝,我感謝你的支持。 – Lucifer

1

有一點需要注意:嘗試使用TargetType的類型語法

<Style x:Key="NextImageButtonStyle" TargetType="{x:Type Button}"> 

參考指定:MSDN Style.TargetType Property

使用此鍵來指該資源可能已足夠,但不正確的TargetType可能會造成干擾。

+0

那並沒有幫助道格! – Lucifer