Да, это правда. Оператор ::
используется для ссылки на метод. Таким образом, можно извлекать статические методы из классов, используя его или методы из объектов. Тот же оператор может использоваться даже для конструкторов. Все примеры, упомянутые здесь, приведены в примере кода ниже.
Официальную документацию из Oracle можно найти здесь здесь .
Вы можете получить лучший обзор JDK 8 изменяет в эту статью . В разделе ссылки «Метод / конструктор» приведен пример кода:
interface ConstructorReference {
T constructor();
}
interface MethodReference {
void anotherMethod(String input);
}
public class ConstructorClass {
String value;
public ConstructorClass() {
value = "default";
}
public static void method(String input) {
System.out.println(input);
}
public void nextMethod(String input) {
// operations
}
public static void main(String... args) {
// constructor reference
ConstructorReference reference = ConstructorClass::new;
ConstructorClass cc = reference.constructor();
// static method reference
MethodReference mr = cc::method;
// object method reference
MethodReference mr2 = cc::nextMethod;
System.out.println(cc.value);
}
}
Свойства ColumnDefinition.Width
и RowDefinition.Height
имеют тип GridLength
, а встроенных анимаций для этого типа не существует. Поэтому, если вы хотите сделать это, вам, вероятно, придется создать свой собственный класс GridLengthAnimation
. Это, вероятно, не слишком сложно, если взять за пример DoubleAnimation
, но и не просто...
EDIT: на самом деле, есть несколько интересных результатов, если поискать "GridLength animation" в Google...
http://windowsclient.net/learn/video.aspx?v=70654
http://marlongrech.wordpress.com/2007/08/20/gridlength-animation/
http://www.codeproject.com/KB/WPF/GridLengthAnimation.aspx