좋아요, 그래서 그림을 표시하는 PictureWindow라는 창이 있습니다 (나는 탭을 만드는 것과 관련없는 코드를 잘라 냈습니다). TabControl의 이름은 "itemsTab"입니다. 버튼 누르기를 사용하면 새 탭을 아무 문제없이 만들 수 있습니다. 그러나 호출 된 메소드 내에서 동일한 연산을 사용하면 작동하지 않습니다. buttonTab_Click 메서드를 사용하면 새 탭이 만들어지며 newTab 메서드는 그렇지 않습니다.
내가 볼 수있는 유일한 차이점은 보낸 사람 및 RoutedEventArgs 개체 때문입니다. 이러한 효과가 여기에 어떻게 영향을 줍니까? 아니면 제가 놓친 다른 것이 있습니까?
미리 감사드립니다.
편집하다새로운 것을 만들려면 newTab 메서드가 PictureWindow 생성자 메서드에서 호출 된 경우에만 새 탭을 만듭니다. 다음과 같은 경우 새 탭이 만들어집니다.
        
public PictureWindow(string current)
        {
            InitializeComponent();
            newTab(current);
        }
그러나 내가 다른 곳에서 그 메소드를 호출하면 작동하지 않는다.
public partial class PictureWindow : Window
    {
        public PictureWindow(string current)
        {
            InitializeComponent();
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
        }
        private void buttonClose_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
        private void buttonTab_Click(object sender, RoutedEventArgs e)
        {
            TabItem newTab = new TabItem();
            newTab.Header = "New Tab!";
            itemsTab.Items.Add(newTab);
        }
        public void newTab(string current)
        {
            TabItem newTab = new TabItem();
            itemsTab.Items.Add(newTab);
        }
    }
                    
                
                
                                    
var newWindow = new PictureWindow(fileName); var window = newWindow.getCurrentPictureWindow(); window.newTab(fileName);getCurrentPictureWindow를 사용하여 오른쪽 창을 선택하면 탭이 성공적으로 추가되었습니다. - Irish Yobbo