答えて
HereはTabControlのタブをテンプレート化のサンプルプロジェクトです。私はおそらく、*および「自動」幅「オート」の3つの列でグリッドを使用して、中央と最後の列に、それ自体でそしてちょうど最後のタブをタブの最初のセットを保持するために、最初の列でのStackPanelを入れてしまいます列が空で残りのスペースを占めるだけです。
この投稿は古いかもしれませんが、同じ質問への答えを探しながら、私はそれを偶然見つけたので、私は、私は私がなってしまった間に合わせのソリューションを共有しようと思いました。
私は(おかげでMeleakに出て行く)そのうちの一つにタブパネルをグリッドに互いの上に2 TabControlsを入れ、右揃え:
<Grid>
<TabControl x:Name="_tabsRight" GotFocus="OnTabFocused" >
<TabControl.Resources>
<Style TargetType="TabPanel">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</TabControl.Resources>
<TabItem x:Name="JustAHiddenTabItemToDeselectTheRealOne" Visibility="Hidden" />
<!-- Last tab -->
<TabItem Header="Last one" >
<!-- Last content... -->
</TabItem>
</TabControl>
<TabControl x:Name="_tabsLeft" GotFocus="OnTabFocused" >
<!-- First tab -->
<TabItem Header="1st" >
<!-- First content... -->
</TabItem>
<!-- Second tab -->
<TabItem Header="2nd" >
<!-- Second content... -->
</TabItem>
</TabControl>
</Grid>
を次に、OnTabFocusedイベントハンドラであなたは2つの左のタブ、右に1つを持っているしたい場合は
private int _zIncrementor = 0;
/// <summary>
/// Hack to make two TabControls act as one.
/// </summary>
private void OnTabFocused(object sender, RoutedEventArgs e)
{
var tab = (TabControl)sender;
var otherTab = (tab == _tabsLeft) ? _tabsRight : _tabsLeft;
Grid.SetZIndex(tab, ++_zIncrementor);
otherTab.SelectedItem = null;
}
は、あなたがその間の第三不可視のタブを持つことができます。ユーザーはのTabItemをクリックしたときに、私たちは前に一番下のTabControlを持参する必要があります非表示タブのwidth
は私たちの残りのスペースを与えるWindow
のActualwidth
からすべての3つの可視のタブWidth
を減算することにより算出すること。ここで
サンプルコード
<TabControl x:Name="_tabsLeft" GotFocus="OnTabFocused" >
<!-- First tab -->
<TabItem Header="1st" >
<!-- First content... -->
</TabItem>
<!-- Second tab -->
<TabItem Header="2nd" >
<!-- Second content... -->
</TabItem>
<!-- Third invisible tab -->
<TabItem Header="Im not visible in UI" Visibility="Hidden" x:Name="invisibletab" >
<!-- I'm not visible in UI... -->
</TabItem>
<!-- Last tab -->
<TabItem Header="Last one" >
<!-- Last content... -->
</TabItem>
</TabControl>
バックエンドのコードです:
public MainWindow()
{
InitializeComponent();
this.SizeChanged += window_SizeChanged;
}
private void window_SizeChanged(object sender, SizeChangedEventArgs e)
{
invisibletab.Width = this.ActualWidth - 550; // where the 550 is the sum of the actual width of visible tabs
}
Downvoters。 。あなたはなぜこれがdownvotedにコメントを残すだろうか?これは質問のための最も簡単な作業ソリューションです。 – Gopichandar
- 1. イメージを右揃えにするにはどうすればよいですか?
- 2. テキストを「右上」に揃えるにはどうすればよいですか?
- 3. この送信ボタンを右揃えにするにはどうすればいいですか?
- 4. AndroidでListViewテキストを右揃えにするにはどうすればいいですか?
- 5. dijit.layout.TabContainerタブを右に揃えることは可能ですか?
- 6. RelativeLayoutのビューを右上隅に揃えるにはどうすればいいですか
- 7. Pythonを使用してグラフィックスウィンドウのテキストを右揃えにするにはどうすればよいですか?
- 8. JTextAreaのテキストを右揃えにするにはどうすればよいですか?
- 9. div要素を右揃えにするにはどうすればよいですか?
- 10. WPF TabControlのタブに余白を追加するにはどうすればいいですか?
- 11. VB6コンボボックスでテキストを揃えるにはどうすればよいですか?
- 12. 次のCSSレイアウトでは、矢印を右揃えにするにはどうしたらいいですか?
- 13. TabControl ContextMenuコマンドをバインドするにはどうすればいいですか?
- 14. 最後にを見つけるにはどうすればいいですか?
- 15. sencha touch 2のチェックボックスフィールドを左揃えにするにはどうすればいいですか?
- 16. MSチャートでラベルを左揃えにするにはどうすればいいですか
- 17. UITableViewCellでボタンを左揃えにするにはどうすればいいですか?
- 18. TabControlの左右のタブc#
- 19. iPhone SDK:TabBarControllerの最後のアクティブなタブを確認するにはどうすればよいですか?
- 20. htmlページの中央に境界線を揃えるにはどうすればいいですか?
- 21. Ruby on RailsのエラーメッセージをSimple_formに揃えるにはどうすればよいですか?現在では、
- 22. Firemonkeyグリッドコントロール - 列を右揃えにする
- 23. 固定位置divを中心divに揃えるにはどうすればいいですか?
- 24. 幅を知らずにdivを中央揃えにするにはどうすればよいですか?
- 25. TextBox.Text右揃えしない
- 26. .NET CF TabControlでタブをプログラムで選択するにはどうすればよいですか? .NET Framework 2.0の/ 3.5のTabControlで
- 27. フォームの左上に縦に回転したテキストヘッダーを揃えるにはどうすればよいですか?
- 28. たとえば、ポイントの後に最大で2つのゼロに小数点を表示するにはどうすればいいですか?たとえば
- 29. ボタンの背景イメージを左揃えに設定するにはどうすればよいですか?
- 30. Fortranで数値出力を左揃えにするにはどうすればよいですか?
は、私が根底にあるタブをクリックすることができませんでした。次のコードでmousedownイベントハンドラを追加しました。 プライベートvoid _tabs_MouseLeftButtonDown(オブジェクト送信側、MouseButtonEventArgs e) { ポイントpt = e.GetPosition((UIElement)sender); VAR要素= this.InputHitTest System.Windows.Controls.Primitives.TabPanelとして(PT)。 if(要素!= null && _tabsLeft.IsAncestorOf(要素)) { _tabsRight.Focus(); _tabsRight.SelectedIndex = 1; } } – Derrick
@Derrick - ありがとう!私の場合、提案された答えはデバッグモードで正常に機能しましたが、最終的にアプリケーションをリリースしたとき、私は同じようなトリックをしなければならないことがわかりました。 – Sphinxxx