を交換してください:私は、XAMLでのコードスニペット以下のいる動的ボタンでのBitmapImage(XAML)
<UserControl x:Class="Ournamespace.OurClassName"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
...
d:DesignHeight="250" d:DesignWidth="774" Loaded="UserControl_Loaded">
....
<Button Grid.Column="0" x:Name="Button_NewMarker" Style="{StaticResource ViewpointFlatButtonStyle}" Width="90" Height="65"
VerticalAlignment="Top" Click="Button_NewMarker_Click" x:FieldModifier="public" Margin="0,0,0,0" Grid.Row="1">
<BitmapImage UriSource="Icons/markers_add_disabled.png" />
</Button>
を、私は
if(!imgCache.ContainsKey(path))
{
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(path, UriKind.Relative);
bi.DownloadFailed += bi_DownloadFailed;
bi.DecodeFailed += bi_DecodeFailed;
bi.EndInit();
imgCache[path] = bi;
}
Button_NewMarker.BeginInit();
Button_NewMarker.Content = imgCache[path];
//Button_NewMarker.Content = oldbmp;
Button_NewMarker.EndInit();
新しいイメージがされてロードすることで、動的にボタン上の画像を交換しようとしていますエラーは発生しません(このためにオーバーライドされたイベント) とBitmapImageが置き換えられているようですが、何らかの理由で灰色です。 イメージはリソースとしてプロジェクトに追加され、最初に読み込まれたイメージは機能しているように見えますが、動的には置き換えられません。
<Image ... >
とさらには<Image ... <ImageBitmap
を使用しようとしましたが、それらのすべてが機能していません.UpControlとは何かが関係していると思われます。
私はインターネットで見たことが何ですか?どのようにすればよいかについての莫大な量の提案があります - これは絶対最小限のコードで行いたい - できればバインディングとテンプレートを使わないでください。バインディングは、すべてが手作業で行われた後の第2ステップとして提案することができます。
:キーとしてファイル名を使用して
、abobeは、おそらくのようになります。 ViewModelからバインドしますか? – Sasha
回答を回答として投稿できますか? コンセプトを理解するために、バインドせずに最初に変更することをお勧めします。 データ複製の高度なメカニズムとしてのバインディングは、必要に応じて実行できます。 – TarmoPikaro
ここを見てくださいhttp://stackoverflow.com/questions/20586/image-urisource-and-data-binding/862583#862583 – Sasha