0
this blog post에서 2 개의 클래스를 구현하고 XAML을 사용해 보았습니다. 같은 일을하는 사용자 정의 컨트롤을 만들고 싶습니다. 그래서 이것을 작성했습니다. 그러나 이미지를 다시 칠하지는 않습니다. 무색의 이미지 만 생성합니다. 나는 바인딩에 문제가 있다고 생각하지만 확실하지 않습니다.이 코드 숨김 바인딩이 작동하지 않는 이유는 무엇입니까?
편집 : 변경 코드는 SSCCE
public class ColorableImage : Image
{
// Used by the converter to color the source
public static readonly DependencyProperty ColorProperty;
static ColorableImage()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ColorableImage), new FrameworkPropertyMetadata(typeof(ColorableImage)));
ColorProperty = DependencyProperty.Register("Color", typeof(Color), typeof(ColorableImage), new FrameworkPropertyMetadata(new PropertyChangedCallback(ColorPropertyChanged)));
}
private static void ColorPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
ColorableImage castedSender = (ColorableImage)sender;
Image img = new Image();
img.Source = castedSender.Source;
Color color = castedSender.Color;
Binding binding = new Binding("Source")
{
Source = img,
Converter = new HighlightImageConverter(),
ConverterParameter = color
};
castedSender.SetBinding(ColorableImage.SourceProperty, binding);
}
public Color Color
{
get { return (Color)GetValue(ColorProperty); }
set { SetValue(ColorProperty, value); }
}
}
에게} 할 수
예 - ColorOverlay라는 속성이 사용되었으며 해당 문자열을 함께 변경하는 것을 잊었습니다. 나를 상기시켜 줘서 고마워. setter 대신 Color에 대한 다른 핸들러를 만드는 방법을 살펴 보겠습니다. –
DP 코드를 작성하는 데 시간을 낭비하고 싶지 않으면 몇 가지 발췌 문장을 만들 수 있습니다. WPF 박사의 자료를 사용합니다. http://drwpf.com/blog/2007/11/17/my-wpf-code-snippets/ – Dmitry
내 게시물보기 –