XAML:为什么此触发器不起作用?

问题描述

| 我想在样式之外使用触发器。编辑:抱歉,它实际上在MainWindow的样式内,但是我希望触发器适用于Ellipse而不是MainWindow。
<Ellipse Fill=\"White\" StrokeThickness=\"1\" Stroke=\"Black\">
    <Ellipse.Triggers>
        <Trigger Property=\"IsMouseOver\" Value=\"True\">
            <Setter Property=\"Fill\" Value=\"Yellow\"/>
        </Trigger>
    </Ellipse.Triggers>
</Ellipse>
如何解决编译器错误,即\“ MainWindow \'\类型上找不到静态成员\'FillProperty \'?     

解决方法

你必须把它放在风格上
<Ellipse  StrokeThickness=\"1\" Width=\"20\" Height=\"20\" Stroke=\"black\">
    <Ellipse.Style>
  <Style TargetType=\"{x:Type Ellipse}\">
    <Setter Property=\"Fill\" Value=\"Red\"/>

    <Style.Triggers>
      <Trigger Property=\"IsMouseOver\" Value=\"true\">
        <Setter Property=\"Fill\" Value=\"green\"/>
      </Trigger>
    </Style.Triggers>
  </Style>
</Ellipse.Style>
    ,在直接触发器中,您需要像这样的限定类型名称:
<Ellipse Width=\"100\" Height=\"100\">
    <Ellipse.Triggers>
        <Trigger Property=\"Ellipse.IsMouseOver\" Value=\"True\">
            <Setter Property=\"Ellipse.Fill\" Value=\"Yellow\" />
        </Trigger>
    </Ellipse.Triggers>
</Ellipse>
由于直接触发条件只允许
EventTriggers
,因此无法使用,请改用Style。     ,您的窗口没有像Ellipse一样具有名为\“ Fill \”的属性。也许您的意思是“背景”。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...