开发者

Why does the following xaml code not work?

Why does this xaml code not work?

<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 Ver开发者_如何学运维ticalAlignment="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>


You are trying to set the Background property in your Trigger, but the Ellipse doesn't have a Background property. It has a Fill property. So you need to use:

<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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜