2010-11-04 6 views
3

У меня есть страница wpf с 5 кнопками. Все 5 кнопок должны быть одинакового размера, и все они должны иметь одинаковое фоновое изображение. Как это сделать?wpf button background image

С уважением, Карн

ответ

7

Используйте стиль. Это будет автоматически применяться к всех кнопок в окне:

<Window.Resources> 
    <Style TargetType="Button"> 
     <Setter Property="Width" Value="100" /> 
     <Setter Property="Height" Value="100" /> 
     <Setter Property="Background"> 
      <Setter.Value> 
       <ImageBrush ImageSource="ButtonBg.png" /> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Window.Resources> 

Это устанавливает по умолчанию ширина, высота, и фон для всех кнопок на. Предполагается, что у вас есть растровое изображение ButtonBg.png, скомпилированное в ваш проект - это фоновое изображение.

Если вы хотите применить этот стиль только для определенных кнопок, вы бы изменить первую строку следующим образом:

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

, а затем кнопки, которые вы хотите применить этот стиль должны были бы ссылаться, что стиль:

<Button Style="{StaticResource imgBtnStyle}" ... /> 

Обратите внимание, что при перетаскивании изображения на рабочую поверхность в Visual Studio 2010, он устанавливает ширину и высоту для вас. Это переопределит стиль. Вам нужно удалить ширину и высоту из самих элементов кнопки, чтобы позволить стилю управлять этими свойствами.