1
나는 xaml에서 이와 비슷한 것을했습니다.wpf의 코드 뒤에서 트리거를 통해 이미지 소스를 설정하는 방법
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="../Images/FolderImage.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=img, Path=IsEnabled}"
value="False">
<Setter Property="Source" Value="../Images/FolderImage_Disabled.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
코드에서 동일한 것을 구현하고 싶습니다.
Style imgStyle = new Style();
imgStyle.TargetType = typeof(Image);
Setter imgSetter = new Setter();
imgSetter.Property = Image.SourceProperty;
imgSetter.Value = bmpImg;
imgStyle.Setters.Add(imgSetter);
disabledImage = new BitmapImage();
disabledImage.BeginInit();
disabledImage.UriSource = new Uri("pack://application:,,,/../Images/FolderImage_Disabled.png");
disabledImage.EndInit();
DataTrigger trg = new DataTrigger();
Binding trgBinding = new Binding();
trgBinding.ElementName = "img";
trgBinding.Path = new PropertyPath("IsEnabled");
trg.Value = false;
trg.Binding = trgBinding;
imgStyle.Triggers.Add(trg);
imgSetter = new Setter();
imgSetter.Property = Image.SourceProperty;
imgSetter.Value = disabledImage;
trg.Setters.Add(imgSetter);
menuIcon.SetValue(Image.StyleProperty, imgStyle);
내가 어떤 도움이 여기에 이해할 수있을 것이다
"System.Windows.Data Error: 4 : Cannot find source for binding with
reference 'ElementName=img'. BindingExpression:Path=IsEnabled; DataItem=null;
target element is 'Image' (Name='img'); target property is 'NoTarget' (type 'Object')"
은 VS 출력에 다음과 같은 오류가 발생합니다 : 나는 다음과 같은 짓을했는지!
로딩 시간을 줄이기 위해 xaml 부분을 코드 뒤에 이동해야했습니다. 그리고 당신 말이 맞습니다 ... 시간이 부족해서, 나는 맹목적으로 xaml을 따라갔습니다. 올바른 방법을 보여 주셔서 감사합니다 :) 감사합니다 :) – Alerter