Почему следующий код xaml не работает? - PullRequest
0 голосов
/ 21 июня 2011

Почему этот код xaml не работает?

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  
  <Grid.Resources>
    <ControlTemplate x:Key="btnTemplate" TargetType="{x:Type Button}">
      <Grid>
       <Ellipse Name="el1" Fill="Orange" Width="100" Height="100" />
       <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" /> 
      </Grid>
    <ControlTemplate.Triggers>
      <Trigger Property="Button.IsMouseOver" Value="True">
        <Setter TargetName="el1" Property="Background" Value="Blue" />
      </Trigger>
    </ControlTemplate.Triggers>
    </ControlTemplate>
  </Grid.Resources>
  <Button Content="Klick mich" Template="{StaticResource btnTemplate}"/>
  </Grid>
</Page>

1 Ответ

1 голос
/ 21 июня 2011

Вы пытаетесь установить свойство Background в своем Trigger, но Ellipse не имеет свойства Background. Имеет свойство Fill . Так что вам нужно использовать:

<Grid>
    <Grid.Resources>
        <ControlTemplate x:Key="btnTemplate" TargetType="{x:Type Button}">
            <Grid>
                <Ellipse Name="el1" Fill="Orange" Width="100" Height="100" />
                <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" />
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="Button.IsMouseOver" Value="True">
                    <Setter TargetName="el1" Property="Fill" Value="Blue" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Grid.Resources>
    <Button Content="Klick mich" Template="{StaticResource btnTemplate}" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...