WPF - Как создать кнопку с изображением с шаблоном

Я использую, ОХВАТЫВАЮТ много, когда я хочу иметь JavaScript, анализируют элемент и вставляют некоторое значение в теге, например:

<span datafield="firstname"></span>

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

30
задан Dave Clemmer 8 August 2011 в 18:56
поделиться

1 ответ

Вам не нужны свойства зависимостей, потому что вы наследуете от Button . У вас уже есть свойства IsPressed и IsEnabled . Фактически, это все, что вам нужно:

<Button x:Class="TestWpfApplication.ThreeStateImageButton"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Button.Template>
      <ControlTemplate TargetType="{x:Type Button}">
         <Grid>
            <Image Name="Normal" Source="Resources/Normal.png"/>
            <Image Name="Pressed" Source="Resources/Pressed.png" Visibility="Hidden"/>
            <Image Name="Disabled" Source="Resources/Disabled.png" Visibility="Hidden"/>
         </Grid>
         <ControlTemplate.Triggers>
            <Trigger Property="IsPressed" Value="True">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
            </Trigger>
         </ControlTemplate.Triggers>
      </ControlTemplate>
   </Button.Template>
</Button>

С вашим файлом кода программной части UserControl:

public partial class ThreeStateImageButton : Button
{
   public ThreeStateImageButton()
   {
      InitializeComponent();
   }
}
71
ответ дан 27 November 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: