如何在运行时将wpf控件添加到模板选项卡控件?
“我的选项卡”控件具有如下资源:如何在运行时将wpf控件添加到模板选项卡控件?,wpf,Wpf,“我的选项卡”控件具有如下资源: </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="True"> &l
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Image" Property="Visibility" Value="Visible" />
<Setter TargetName="Border" Property="BorderBrush" Value="Gray" />
<Setter TargetName="TextBlock" Property="Foreground" Value="Black" />
<Setter TargetName="Border" Property="Margin" Value="-2,0,2,-1" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border" >
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Background="WhiteSmoke" Name="Grid1">
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Canvas Background="{StaticResource {x:Static SystemColors.ActiveCaptionBrushKey}}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
如何将“标签”之类的控件添加到TabControl的网格(在名为“Grid1”的资源中)?尝试在VisualTree中搜索网格,然后将控件添加到网格中。可以使用以下帮助器函数查找网格,然后检查名称。否则,您还可以扩展代码以更轻松地进行搜索(通过添加名称参数)
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Image" Property="Visibility" Value="Visible" />
<Setter TargetName="Border" Property="BorderBrush" Value="Gray" />
<Setter TargetName="TextBlock" Property="Foreground" Value="Black" />
<Setter TargetName="Border" Property="Margin" Value="-2,0,2,-1" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border" >
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Background="WhiteSmoke" Name="Grid1">
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Canvas Background="{StaticResource {x:Static SystemColors.ActiveCaptionBrushKey}}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
void findChildFrameworkElementSoftType(DependencyObject父对象,IList列表),其中T:FrameworkElement{
依赖对象子对象;
对于(int i=0;i
比如:
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Image" Property="Visibility" Value="Visible" />
<Setter TargetName="Border" Property="BorderBrush" Value="Gray" />
<Setter TargetName="TextBlock" Property="Foreground" Value="Black" />
<Setter TargetName="Border" Property="Margin" Value="-2,0,2,-1" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border" >
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Background="WhiteSmoke" Name="Grid1">
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Canvas Background="{StaticResource {x:Static SystemColors.ActiveCaptionBrushKey}}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
List<Grid> list=new List<Grid>();
FindCHildFrameworkElementsOfType<Grid>(this,list)
foreach(Grid grid in list){
if(grid.Name=="Grid1"){
// Add here your control
break;
}
}
List List=新列表();
FindChildFrameworkElementSoftType(此,列表)
foreach(列表中的网格){
if(grid.Name==“Grid1”){
//在这里添加您的控件
打破
}
}
您可以添加加载的事件处理程序:
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Image" Property="Visibility" Value="Visible" />
<Setter TargetName="Border" Property="BorderBrush" Value="Gray" />
<Setter TargetName="TextBlock" Property="Foreground" Value="Black" />
<Setter TargetName="Border" Property="Margin" Value="-2,0,2,-1" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border" >
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Background="WhiteSmoke" Name="Grid1">
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Canvas Background="{StaticResource {x:Static SystemColors.ActiveCaptionBrushKey}}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Grid Background="WhiteSmoke" Name="Grid1" Loaded="Grid1_Loaded">
特殊情况:
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Image" Property="Visibility" Value="Visible" />
<Setter TargetName="Border" Property="BorderBrush" Value="Gray" />
<Setter TargetName="TextBlock" Property="Foreground" Value="Black" />
<Setter TargetName="Border" Property="Margin" Value="-2,0,2,-1" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="Border" >
<Setter TargetName="Border" Property="Background" Value="White" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid Background="WhiteSmoke" Name="Grid1">
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Canvas Background="{StaticResource {x:Static SystemColors.ActiveCaptionBrushKey}}" />
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>