2010-03-16 75 views
3

我有一個以編程方式創建的按鈕,它的內容是一個帶有圖像和文本塊的堆疊面板。這一切都很好。如何讓Silverlight按鈕在顯示圖像時透明?

我想讓圖片和文字背後的按鈕透明,以便圖片和文字看起來像坐在背景上,但仍然具有按鈕的所有屬性(即有人在按鈕區域點擊它仍然註冊按鈕點擊事件)。

我一直在使用不透明度,但每次處理按鈕時我都會使用不透明度來設置整個按鈕(包括圖像和文本)以及不透明度值。

如何在使文本和圖像內容仍然可見時使按鈕不透明?

哦,這是silverlight 3.提前致謝。

回答

4

你將不得不模板按鈕,並刪除漸變,焦點元素等,你不想保持一個按鈕的默認樣式。這聽起來像你可能只是想保持內容主持人,擺脫背景和鼠標在「發光」漸變。如果您希望整個按鈕區域攔截鼠標事件而不僅僅是底層圖像和文本內容,您可能必須將StackPanel內容的背景設置爲透明。

Scott Gu對創建控件模板的基礎知識有good tutorial here

如果使用Expression Blend,可以非常容易地右鍵單擊該按鈕,然後選擇Edit Template - > Edit a Copy將默認樣式複製到該按鈕的新樣​​式資源中,然後您可以右鍵操作該模板在混合。

+0

謝謝丹,我認爲這樣做。 – Mike 2010-03-16 19:48:24

4

您可以覆蓋按鈕的模板屬性,以使一個空的格子,就像這樣:如果需要

<Button> 
     <Button.Template> 
      <ControlTemplate TargetType="Button"> 
      <Grid /> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

這可以被設置爲可重複使用的風格。

+0

感謝您的意見,我會先試一試,因爲它看起來最簡單。 – Mike 2010-03-16 19:48:58