0

タブ コントロールに閉じるボタンを追加するにはどうすればよいですか? これは、ビルドして実行した後のアプリの外観です。 ビルドして実行した後

メニュー 1.1 を選択すると、次にメニュー 2.2 を選択すると、次のように表示されます。 メニュー 1.1 を選択し、メニュー 2.2 に進みます

これは私のユーザーコントロールのようです。1 つはメニュー 1.1 (左) 用で、もう 1 つはメニュー 1.2 (右) 用です。

メニュー1.1のユーザーコントロール メニュー 2.1 のユーザー コントロール

私の質問は次のとおりです。1.各タブに閉じるボタンを追加することは可能ですか? 2. はいの場合、どうすればそれを行うことができますか?

すでにこのリンクをたどっていますが、まだできません。小さいタイトルまたは長いタイトルを追加すると、そのリンクは同じ UI を使用します。しかし、今はタブごとに異なる UI を持っています。閉じるボタンを処理するにはどうすればよいですか? ありがとう。

ここに私のxamlがあります。

    <ribbon:Ribbon x:Name="Ribbon">
        <ribbon:Ribbon.ApplicationMenu>
            <ribbon:RibbonApplicationMenu SmallImageSource="Images\SmallIcon.png">
                <ribbon:RibbonApplicationSplitMenuItem Header="Menu 1" 
                        ImageSource="Images\LargeIcon.png" Name="RibbonSplit">
                    <ribbon:RibbonApplicationMenuItem Header="Menu 1.1"
                                                  x:Name="RibbonMenu1"
                                                  ImageSource="Images\LargeIcon.png" Click="RibbonMenu1_Click"/>
                </ribbon:RibbonApplicationSplitMenuItem>

                <ribbon:RibbonApplicationSplitMenuItem Header="Menu 2" ImageSource="Images\LargeIcon.png">
                    <ribbon:RibbonApplicationMenuItem Header="Menu 2.1"
                                                  x:Name="RibbonMenu2"
                                                  ImageSource="Images\LargeIcon.png" Click="RibbonMenu2_Click"/>
                </ribbon:RibbonApplicationSplitMenuItem>

            </ribbon:RibbonApplicationMenu>
        </ribbon:Ribbon.ApplicationMenu>

    </ribbon:Ribbon>
    <TabControl Grid.Row="1" Height= "394" Name="TabMenu" VerticalAlignment="Top">

    </TabControl>

タブを追加するコードは次のとおりです。

tab2 tb1 = new tab1(); //menu1.1
AddTab(tb1);

これが私の AddTab メソッドです。

if (_mdiChildren.ContainsKey(mdiChild.UniqueTabName))
        {
            //user control is already opened in tab. 
            //So set focus to the tab item where the control hosted
            foreach (object item in TabMenu.Items)
            {
                TabItem ti = (TabItem)item;
                if (ti.Name == mdiChild.UniqueTabName)
                {
                    ti.Focus();
                    break;
                }
            }
        }
        else
        {
            //the control is not open in the tab item
            TabMenu.Visibility = Visibility.Visible;
            TabMenu.Width = this.ActualWidth;
            TabMenu.Height = this.ActualHeight;

            //((ITabbedMDI)mdiChild).CloseInitiated += new delClosed(CloseTab);

            //create a new tab item
            TabItem ti = new TabItem();
            //set the tab item's name to mdi child's unique name
            ti.Name = ((ITabbedMDI)mdiChild).UniqueTabName;
            //set the tab item's title to mdi child's title
            ti.Header = ((ITabbedMDI)mdiChild).Title;
            //set the content property of the tab item to mdi child
            ti.Content = mdiChild;
            ti.HorizontalContentAlignment = HorizontalAlignment.Stretch;
            ti.VerticalContentAlignment = VerticalAlignment.Top;
            //add the tab item to tab control
            TabMenu.Items.Add(ti);
            //set this tab as selected
            TabMenu.SelectedItem = ti;
            //add the mdi child's unique name in the open children's name list
            _mdiChildren.Add(((ITabbedMDI)mdiChild).UniqueTabName, ((ITabbedMDI)mdiChild).Title);

        }
         //* */
    }
4

1 に答える 1

0

これらのカスタム コントロールについては、こちらこちらをご覧ください。

于 2012-09-26T05:34:31.013 に答える