0
ボタンのコンテンツイメージを変更すると、以前に定義されたレイアウトプロパティは無視されます。ボタンの内容を変更するとスタイルWPFが削除されます
私は何を疑うことはボタンのクリックイベントにthis.Content
を変更すると、それが修飾するという事実である:
<Button>
Everything found between these tags.
</Button>
そして、私のスタイルは、これらのタグの内側にあるように、それはそれを上書きします。
private void ChangeImageFile(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files|*.png;*.jpeg;*.tiff;*.gif;*.bmp;*.jpg";
ofd.FilterIndex = 1;
ofd.Multiselect = false;
bool? ok = ofd.ShowDialog();
if(ok == true)
{
Image loaded = new Image();
loaded.Source = new BitmapImage(new Uri(ofd.FileName));
loaded.Height = 100;
this.Content = loaded;
}
}
<Button x:Name="BookCover" Click="ChangeImageFile">
<Button.Content>
<Image Source="Images/NewBook.png"/>
</Button.Content>
<Button.Style>
<Style TargetType="{x:Type Button}">
... LONG STYLE ...
</Style>
</Button.Style>
</Button>
あなたが書いた 'this.Content'は、' this'は何を指し? – user3185569
あなたが述べたように、これはウィンドウを指しており、ページが開発中であったため、ウィンドウ内に他の要素が存在しなかったので、イメージが残っている唯一のものであることがわかりません。あなたのソリューションは機能します。 –