코드 숨김으로 이미지 배경을 설정하려고합니다. 버튼에 배경 이미지를 추가하려고 시도했지만 버튼 위로 마우스를 가져 가면 이미지가 사라집니다. 이 문제를 해결하기 위해 코드 비하인드에서 할 수있는 버튼 비헤이비어를 재정의하는 함수를 작성해야합니다.C# 코드 뒤의 이미지 버튼
그런 다음 다른 방법으로 단추와 이미지를 별도로 그리드 셀에 추가하는 방법을 사용합니다. 문제는 - 이미지를 클릭하면 버튼이 트리거되지 않습니다.
어떻게 마우스 버튼의 나머지 영역입니다 중 하나를 유혹하거나 버튼에 이미지를 누르면 아닌 경우에도, 버튼 및 이 효과를 누른 호버을 가지고해야합니까?
누군가가 내게 더 나은 해결책을 제안 해 줄 수 있기를 바랍니다. 내 코드는 아래에 있습니다.
InitializeComponent();
Button playBtn = new Button();
playBtn.Width = 60;
playBtn.Height = 30;
Image playIcon = new Image();
playIcon.Source = new BitmapImage(new Uri(@"PATH"));
playIcon.Stretch = Stretch.Uniform;
playIcon.Height = 25;
grid1.Children.Add(playBtn);
grid1.Children.Add(playIcon);
Grid.SetColumn(playBtn, 0);
Grid.SetRow(playBtn, 0);
Grid.SetColumn(playIcon, 0);
Grid.SetColumn(playIcon, 0);
모든 사용자에게 감사드립니다. 더 많은 정보를 입력 한 후 문제가 해결되었습니다. 내가 한 일은 격자 to Button.Content을 추가 한 다음 이미지를 Grid에 추가합니다. 그리고 불투명도을 사용하여 에 회색 아웃 효과를 추가합니다. IsEnable false 상태. 내 코드를 게시 아래, 누군가가 유용거나 개선 기대 : WPF에서
Button playBtn = new Button();
Image playIcon = new Image();
public MainWindow()
{
InitializeComponent();
Grid grid2 = new Grid();
RowDefinition grid2_row1 = new RowDefinition();
ColumnDefinition grid2_col1 = new ColumnDefinition();
grid2.RowDefinitions.Add(grid2_row1);
grid2.ColumnDefinitions.Add(grid2_col1);
playBtn.Width = 60;
playBtn.Height = 30;
playBtn.Click += playBtn_Click;
playIcon.Source = new BitmapImage(new Uri(@"pack://PATH..."));
playIcon.Stretch = Stretch.Uniform;
playIcon.Height = 25;
playBtn.Content = grid2;
grid2.Children.Add(playIcon);
grid1.Children.Add(playBtn);
Grid.SetRow(playIcon, 0);
Grid.SetColumn(playIcon, 0);
}
public void playBtn_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
playBtn.IsEnabled = false;
playIcon.Opacity = 0.3;
}
가 어떻게 버튼의 MOUSE_OVER 상태로 이미지의 MOUSE_OVER 상태를 결합 할 링크? – KMC
@KMC - 집에서이 작업을 수행하는 코드가 있습니다. 오늘 코드를 찾아서 게시 할 수 있는지 확인합니다. – ChrisF
@ChrisF - 감사합니다. 매우 도움이 될 것입니다. 다른 문제는 버튼 위에 마우스를 올려 놓거나 이미지를 누르면 동일한 버튼 효과를 얻으려는 경우 기본 단추에있는 것과 동일한 Normal, Mouse_Over 및 Presses 상태 이벤트를 다시 작성해야합니다. 아니면 새 마우스 이벤트 클래스에서 기본 마우스 이벤트 클래스를 상속합니까? – KMC