C# 使边界清晰可见

C# 使边界清晰可见,c#,wpf,xaml,datatrigger,C#,Wpf,Xaml,Datatrigger,我有一个选项卡item: <TabItem x:Name="tabTFGWReadingMainHall" Header="Main Hall" DataContext="{Binding Meeting}"> <TabItem.Style> <Style TargetType="{x:Type TabItem}"> <Setter Property="IsEnabled" Value="False"/&g

我有一个
选项卡item

<TabItem x:Name="tabTFGWReadingMainHall" Header="Main Hall" DataContext="{Binding Meeting}">
    <TabItem.Style>
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="IsEnabled" Value="False"/>
            <Setter Property="IsSelected" Value="False"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding NumberClasses, ConverterParameter=1, Converter={StaticResource IsEqualOrGreaterThanConverter}}" Value="True">
                    <Setter Property="IsEnabled" Value="True" />
                </DataTrigger>
                <DataTrigger Binding="{Binding SelectedItem, ElementName=comboActiveStudentAssignmentType}" Value="{x:Static StudentInfoEnums:StudentAssignmentType.BibleReadingMain}">
                    <Setter Property="IsSelected" Value="True"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TabItem.Style>
    <Border  x:Name="borderBibleReadingMain" BorderThickness="5">
        <Border.Style>
            <Style TargetType="Border">
                <Setter Property="BorderBrush" Value="Transparent"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding SelectedItem, ElementName=comboActiveStudentAssignmentType}" Value="{x:Static StudentInfoEnums:StudentAssignmentType.BibleReadingMain}">
                        <Setter Property="BorderBrush" Value="Red"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
        <StackPanel>
            <StackPanel.Style>
                <Style TargetType="{x:Type StackPanel}">
                    <Setter Property="IsEnabled" Value="False"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding NumberClasses, ConverterParameter=1, Converter={StaticResource IsEqualOrGreaterThanConverter}}" Value="True">
                            <Setter Property="IsEnabled" Value="True" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </StackPanel.Style>
            <Label Content="Student:"/>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="auto"/>
                </Grid.ColumnDefinitions>
                <TextBox x:Name="textBibleReadingMain" Grid.Column="0" Margin="2" IsEnabled="False"
                        DataContext="{Binding TFGW.BibleReadingItem.Main}"
                        Text="{Binding DataContext.BibleReadingMain, ElementName=oclmEditor, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"/>
                <Button x:Name="buttonBibleReadingMain" Grid.Column="1" Background="Transparent"
                        DataContext="{Binding DataContext, ElementName=oclmEditor}"
                            Command="{Binding ApplicationCommand}" CommandParameter="BibleReadingMain">
                    <Image Source="Images/AssignmentTypeBibleReading16.png" Margin="2"/>
                </Button>
            </Grid>
            <Label Content="Study:"/>
            <ComboBox DataContext="{Binding DataContext, ElementName=oclmEditor}"
                          ItemsSource="{Binding ReadingStudyPointsList}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Number}"/>
                            <TextBlock Text=" - "/>
                            <TextBlock Text="{Binding Title}"/>
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </StackPanel>
    </Border>
</TabItem>
虽然它确实被解雇了,但似乎没有任何区别。我仍然需要滚动屏幕才能看到它

我应该怎么做


谢谢。

您想在
选项卡项目
周围加一个红色边框吗?@step-up-No。我的边框很好。我只是希望整个边界对象滚动到视图中,而不是保持裁剪。或者更确切地说,为了确保它在可能的情况下是可见的(因为用户可能已经调整了面板的大小)。上次我这样做时,我没有时间,只是在边框下放置了一个命名的1x1透明矩形,并放置了BringIntoView()相反,为了实现相同的目标,但不必测量实际高度和垂直偏移量等,这项工作非常有魅力。@ChrisW。谢谢。我试试看。
private void comboActiveStudentAssignmentType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    OCLMEditorViewModel vm = this.DataContext as OCLMEditorViewModel;
    if(borderBibleReadingMain != null && 
       vm.ActiveStudentAssignmentType == Data.StudentInfo.Enums.StudentAssignmentType.BibleReadingMain)
        borderBibleReadingMain.BringIntoView();
    // TODO: Add others here
}