2010-06-23 54 views
2

例如,我創建了一個帶有複選標記的按鈕。我需要在窗戶的兩個地方使用它。可以重新使用WPF控件嗎?

<Button Width="25"> 
    <!-- Draw a Green checkmark --> 
    <Polyline Points="2,5,6,10,13,1" Stroke="Green" StrokeThickness="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round" /> 
</Button> 

由於我只想更改內容,我不確定樣式或模板是否適用。我是否需要創建一個UserControl?

編輯:這可以用一種風格來完成。但是,我只想更改內容,我不想重寫當前的樣式。

+0

你最好可以使用樣式在這裏,讓你不必去改變所有的按鈕時,有一個變化。 – Amsakanna 2010-06-23 13:18:20

回答

1

這是一種風格的呼喊。以下樣式添加到您的Window.Resources:

<style TargetType="Button" x:Key="tick"> 
    <Setter Property="ContentTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <Polyline Points="2,5,6,10,13,1" Stroke="Green" StrokeThickness="4" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeEndLineCap="Round" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

,然後你也可以定義按鈕:

<Button Width="25" Style="{StaticResource tick}" /> 
+0

此特定樣式符合要求,但會丟棄使用樣式爲按鈕提供的任何內容。這是一個很好的解決方案,但是您可以隨時修改模板以便隨後包含ContentPresenter。例如,你可以用Polyline和ContentPresenter創建一個水平的StackPanel,現在你可以選擇將文本(或任何其他內容)附加到任何'tick'樣式按鈕上。 – 2010-06-23 13:39:53

+0

這是一個非常好的觀點 - 我確實努力去制定它。添加內容演示者將是一個不錯的功能。 – 2010-06-23 13:49:47

+0

謝謝。但是我的整個應用程序已經應用了它的樣式。當我運用這種風格時,我會放棄這一切。有沒有解決的辦法? – TheSean 2010-06-23 14:13:30

2

如果您想對其創建某種動態功能,即添加新屬性,請使用您創建的按鈕的內容創建UserControl。如果你只有一個只有視覺外觀的按鈕來進行檢查,那麼我會使用一種風格。

0

創建創建按鈕的內容的用戶控件。創建用戶控件的最簡單方法是使用Expression Blend。選擇我們想要進行UserControl的所有控件。右鍵點擊並選擇「進入用戶控制」。而已。 U可以通過拖放操作在項目中的任何位置使用此控件。

希望這將有助於U,

Saghar Ayyaz

相關問題