我得到这些错误。我读了几个帖子,我的TreeViewItem确实定义了Horizontal和VerticalContentAlignment。有趣的是。NET 4.0让这个错误消失了(我使用3.5 -否则我会遭受这个https://connect . Microsoft . com/visual studio/feedback/details/588343/changed-behavior-from-NET-3-5-to-NET-4-0-of-wpf-textbox-formatting-when-proper)
系统。Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,ancestor type =”System的绑定的源。Windows.Controls.ItemsControl ',AncestorLevel='1 ' '。binding expression:Path = horizontal content alignment;DataItem = null目标元素是“TreeViewItem”(名称=“”);目标属性为“HorizontalContentAlignment”(类型为“HorizontalAlignment”)
系统.Windows。数据错误:4:无法找到引用“RelativeSource FindAncestor,AncestorType=”System.Windows.Controls的绑定源。ItemsControl',AncestorLevel=“1”。BindingExpression:路径=VerticalContentAlignment;数据项=空;目标元素是“TreeViewItem”(名称=“”);目标属性是“VerticalContentAlignment”(类型为“Vertical Alignment)
<!-- TreeViewItem templates (full length parent items) -->
<Style x:Key="TreeViewItemStyleBase" TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="19" Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="5"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/>
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="1" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ItemsPresenter x:Name="ItemsHost" Grid.Column="1" Grid.Row="1"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="False">
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" TargetName="Bd" Value="{StaticResource CustomLightHighlight}"/>
<Setter Property="Foreground" Value="{StaticResource CustomWhite}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{StaticResource CustomGray}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Data templates-->
<HierarchicalDataTemplate x:Key="RealTemplate" DataType="{x:Type l:Account}" ItemsSource="{Binding Path=children}">
<DockPanel LastChildFill="True">
<TextBlock x:Name="AccountTitle" Text="{Binding Path=title}" Foreground="White" DockPanel.Dock="Left"/>
<TextBox x:Name="EditAccountTitle" Text="{Binding Path=title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource RoundedTextBox}" FontWeight="Bold" LostFocus="tvLostFocus" PreviewKeyDown="tvKeyDown" LostKeyboardFocus="tvLostFocus" Visibility="Collapsed" DockPanel.Dock="Left" l:FocusExtension.IsFocused="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}}" CaretIndex="{x:Static sys:Int32.MaxValue}"/>
<TextBlock Text="{Binding Path=amount}" Foreground="{Binding Converter={StaticResource GetColourConverterAmount}}" DockPanel.Dock="Right" TextAlignment="Right"/>
</DockPanel>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=isEditable}" Value="True">
<Setter TargetName="AccountTitle" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="EditAccountTitle" Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=isEditable}" Value="False">
<Setter TargetName="AccountTitle" Property="Visibility" Value="Visible"/>
<Setter TargetName="EditAccountTitle" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource TreeViewTopItemConverter}}" Value="False">
<DataTrigger.Setters>
<Setter Property="ContextMenu" Value="{StaticResource RealAccountMenu}"/>
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource TreeViewTopItemConverter}}" Value="True">
<DataTrigger.Setters>
<Setter Property="ContextMenu" Value="{StaticResource CategoryMenu}"/>
</DataTrigger.Setters>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
<!-- TreeViewItem styles - these styles defined here as reference code -->
<Style x:Key="TreeViewItemStyleReal" BasedOn="{StaticResource TreeViewItemStyleBase}" TargetType="{x:Type TreeViewItem}">
<Setter Property="HeaderTemplate" Value="{StaticResource RealTemplate}"/>
<Setter Property="IsExpanded" Value="{Binding isNodeExpanded, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Setter Property="IsSelected" Value="{Binding isNodeSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<!-- Events -->
<EventSetter Event="TreeViewItem.MouseDoubleClick" Handler="tvShowItems"/>
<EventSetter Event="TreeViewItem.PreviewMouseLeftButtonDown" Handler="tvMouseDown"/>
<EventSetter Event="TreeViewItem.PreviewMouseRightButtonUp" Handler="tvMouseRightDown"/>
<EventSetter Event="TreeViewItem.PreviewMouseMove" Handler="tvMouseMove"/>
<EventSetter Event="TreeViewItem.Drop" Handler="tvDrop"/>
<EventSetter Event="TreeViewItem.Expanded" Handler="tvExpanded"/>
<EventSetter Event="TreeViewItem.Collapsed" Handler="tvCollapsed"/>
</Style>
我错过了什么??
谢谢Andy
我想出了答案。我没有正确地在集合中实现INotify属性更改,因此使用集合视图刷新刷新(这导致了树视图的重新绘制),我认为这一定破坏了绑定。自从正确地实现通知后,问题就解决了
所以我在垂直ScrollView中有一个水平回收器视图。我的布局中的所有内容都显示得很好,并且都按照我想要的方向滚动,并且它做得很好。 我唯一的问题是,RecyclerView位于ScrollView中其他内容的下方,当RecyclerViewer部分可见时,它会在启动时将RecyclerView的底部与屏幕的底部对齐。这意味着RecyclerView上方的内容被推离屏幕。 有谁知道为什么会发生这
问题内容: 嗨,我想放置一个图像,该图像的垂直和水平居中对齐,我的HTML标记是 完成所有这些操作后,我将无法执行操作。请看一下并帮助我。 问题答案: 有几种方法可以使元素水平和垂直居中,这取决于情况和您的喜好。 使用以下标记: 行高 好的快速修复方法,不会使您太费时间,但是如果实际上将文本居中,则可能会出现问题。 显示:表格单元 就像好的旧表一样工作并且高度灵活,但是仅在现代浏览器中受支持。 位
问题内容: 我有一个页面,其中仅存在表单,并且我希望将表单放置在屏幕的中央。 该对齐表格水平,但我无法弄清楚如何垂直对齐。我已经尝试使用和,但是它不起作用。 我想念什么? 问题答案: 更新2019 - Bootstrap 4.3.1 有 没有必要 进行 额外的CSS 。Bootstrap中已经包含的内容将起作用。确保表格的容器为 全高 。Bootstrap4现在具有100%高度的类… 垂直中心:
问题内容: 我正在练习CSS,却对如何强制将元素置于页面的中心(和)感到困惑(这意味着跨浏览器兼容性的一种或多种方式)? 最好的祝福! 问题答案: 有很多方法: 使用固定尺寸使元素的水平和垂直居中对齐 CSS 2。水平和垂直居中一行文本 CSS 3。没有特定度量的元素的水平和垂直居中对齐 CSS
问题内容: 如何使用flexbox在容器内水平和垂直居中div。在下面的示例中,我希望每个数字都彼此相邻(按行),并水平居中。 问题答案: 我认为您想要以下内容。 你的元素应该是块级(而非)如果你想要的高度和顶部/底部填充,以正常工作。 另外,在上,将宽度设置为而不是。 您的属性很好。 如果您希望垂直居中于视口中,请为和分配100%的高度,然后将页边距清零。 请注意,需要一个高度才能看到垂直对齐效
如何使用FlexBox在容器内水平和垂直地居中div。在下面的例子中,我希望每一个数字在彼此下面(在行中),水平居中。 null null http://codepen.io/anon/pen/zlxbo