О, это работает, но не так, как вы ожидаете.
Когда вы устанавливаете активный кадр изображения gif, он фактически перезапускает свою анимацию из этого кадра. Вы должны остановить его при изменении фрейма, например, установив pictureBox.IsEnabled
в false. Попробуйте использовать следующий код
private Image img;
public Form1()
{
InitializeComponent();
img = Image.FromFile(@"C:\Users\Administrator\TEST C#\TEST2frame2\chef.gif");
pictureBox1.Image = img;
}
private void button1_Click(object sender, EventArgs e)
{
var dim = new FrameDimension(img.FrameDimensionsList[0]);
img.SelectActiveFrame(dim, 1);
pictureBox1.Enabled = false;
}
Попробуйте нажать кнопку в разные моменты времени, и вы увидите, что будет изменяться рамка активного изображения.
Когда вы используете []
для привязки к @Input()
, это в основном выражение шаблона.
Точно так же отображение {{abc}}
ничего не отображает (если у вас на самом деле не была указана переменная, называемая abc
).
Если у вас есть строка @Input()
, и вы хотите привязать ее к константной строке, вы можете связать ее следующим образом: [myText]=" 'some text' "
или, короче говоря, как обычный HTML-атрибут: myText="some text"
.
Работала [myEnabled]="true"
, потому что true
является допустимым выражением шаблона, которое, конечно, оценивается с помощью boolean true
.
binding []
для объектов, без него значение является строкой. Будьте осторожны с типами.
В коде
<div [myDirective]="myDefaultText" [myEnabled]="true" [myText]="abc"></div>
вы пытались связать объект, но объект недоступен, поэтому его значение равно undefined
. С другой стороны, если вы удаляете привязку, тогда объект ушел, у вас есть только значение string
, присвоенное этому свойству.
myEnabled="false"
, потому что это будет оцениваться как строка, и поскольку "false"
действительно правдивое значение, оно не будет вести себя так, как вы ожидали.
– Simon_Weaver
9 February 2018 в 21:13
В скобках указано значение «Угловое» для вычисления выражения шаблона. Если вы опускаете скобки, Angular рассматривает строку как константу и инициализирует свойство target этой строкой. Он не оценивает строку!
Не делайте следующую ошибку:
<!-- ERROR: HeroDetailComponent.hero expects a
Hero object, not the string "currentHero" -->
<hero-detail hero="currentHero"></hero-detail>
check: https://angular.io/docs/ts/latest /guide/template-syntax.html#!#property-binding
[myDirective]="myDefaultText"
предоставил значение «my_efaultText real значение », хотя он имел в виду фактическое значениеmyDefaultText
, что означает, что он по-прежнему рассматривается как выражение. – Amit 20 May 2017 в 17:09