- 追加された行はこの色です。
- 削除された行はこの色です。
&tag(WPF/TabControl);
*目次 [#p2878af0]
#contents
*参考情報 [#c7556be5]
*Tips [#b074810d]
**基本)TabControlにコレクションをBindingする [#z5d849c0]
-ItemsSourceにコレクションを設定。
-ItempTemplateでヘッダー部分のカスタマイズ。
-ContentTemplateでタブの中身のカスタマイズ。
''MainWindow.xaml''
#pre{{
<TabControl Name="tab" ItemsSource="{Binding Persons}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Id}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
}}
''MainWindow.xaml.cs''
#pre{{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Persons = new ObservableCollection<Person>();
this.Persons.Add(new Person() { Id = 1, Name = "中田英寿" });
this.Persons.Add(new Person() { Id = 2, Name = "中村俊輔" });
this.DataContext = this;
}
public ObservableCollection<Person> Persons { get; set; }
}
}}
''Person.cs''
#pre{{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
}}
**タブごとに異なる内容を描画 [#n3dc4961]
-[[TabControl.ContentTemplateSelector Property (System.Windows.Controls):http://msdn.microsoft.com/en-us/library/system.windows.controls.tabcontrol.contenttemplateselector.aspx]]
-[[WPF TabControl and DataTemplates - Stack Overflow:http://stackoverflow.com/questions/1348118/wpf-tabcontrol-and-datatemplates]]
ContentTemplateSelectorを使って切り替えるのが簡単っぽい。
**TabItemの色を変更する [#ld4d54e1]
-[[wpf controls - WPF - TabItem Background color changes when tabitem selected or hover over - Stack Overflow:http://stackoverflow.com/questions/3265140/wpf-tabitem-background-color-changes-when-tabitem-selected-or-hover-over]]
-[[c# - Change default highlight colour of TabItem in TabControl WPF - Stack Overflow:http://stackoverflow.com/questions/3889728/change-default-highlight-colour-of-tabitem-in-tabcontrol-wpf]]
-[[WPF Tab Control: Setting Tab Color? - Stack Overflow:http://stackoverflow.com/questions/2086728/wpf-tab-control-setting-tab-color]]
Templateごと定義しないとだめ?。結構めんどくさそう。
**選択をキャンセルした [#m1c626ae]
-[[wpf - Is there a way to cancel TabControl.Items.CurrentChanging? - Stack Overflow:http://stackoverflow.com/questions/4194290/is-there-a-way-to-cancel-tabcontrol-items-currentchanging/4194548#4194548]]
-[[How to prevent a TabItem from being selected « Josh Smith on WPF:http://joshsmithonwpf.wordpress.com/2009/09/04/how-to-prevent-a-tabitem-from-being-selected/]]