2014-12-22 6 views
0

Вот мой шаблон управления для стиля кнопки.WPF-кнопки с изображением и текстом

<StackPanel Orientation="Horizontal"> 
    <Image x:Name="EmailImage" Source="../Images/btn__icon_savedisk.png" Height="17" Width="17" Stretch="None" RenderOptions.BitmapScalingMode="NearestNeighbor" /> 
    <TextBlock x:Name="EmailImageTxt" Margin="20,0,20,0" Foreground="White" Text="{x:Static res:Localize.SAVE}" Background="{x:Null}" /> 
</StackPanel> 

Моя проблема когда я получаю указатель мыши на область с пространством между изображением и кнопки текста (изображения и текст) не выбора. Мне нужно, чтобы мышь фокусировалась на всех пуговицах.

Благодарим за помощь.

ответ

1

Set Background = "Transparent" для stackpanel и работает, как и ожидалось.


Элемент управления без фона обычно называют неприменимым в терминах XAML. Таким образом, необходимо установить фон, чтобы объект реагировал на хиты.

<Button VerticalAlignment="Center" HorizontalAlignment="Center"> 
    <Button.Template> 
     <ControlTemplate> 
      <StackPanel x:Name="stackpanel" Orientation="Horizontal"> 
       <Image x:Name="EmailImage" Source="Black.jpg" Height="17" Width="17" Stretch="None" RenderOptions.BitmapScalingMode="NearestNeighbor" /> 
       <TextBlock x:Name="EmailImageTxt" Margin="20,0,20,0" Foreground="Black" Text="gdfgdg}" Background="{x:Null}" /> 
      </StackPanel> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="Red" TargetName="stackpanel"></Setter> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 
+1

Спасибо, сэр. Это сработало!!! –

+0

Добро пожаловать! –