= null) { ItemsPresenter itemsPresenter = _scroll.Content as ItemsPresenter Measure(size); itemsPresenter?. 通过 ItemsPresenter 重新布局就是解决这样的问题,在 ScrollViewer 的判断 ScrollableHeight 是通过 this.ExtentHeight - this.ViewportHeight false 这样 ExtentHeight 就是内容的长度 通过 ScrollViewer.Content 可以知道 ExtentHeight 和 ExtentWidth 这个在 ListView 等是 ItemsPresenter 如果出现 ExtentHeight 太小就可能是 ItemsPresenter 布局不对 .net Framework 源代码 · ScrollViewer ---- 本文会经常更新,请阅读原文
<DoubleAnimationUsingKeyFrames Duration="0:0:0.5" Storyboard.TargetName="<em>ItemsPresenter</em> VerticalScrollBarVisibility="Hidden" 16 BorderThickness="0"> 17 <ItemsPresenter x:Name="ItemsPresenter"> 18 <ItemsPresenter.RenderTransform> 19 21 </TransformGroup> 22 </ItemsPresenter.RenderTransform > 23 </ItemsPresenter> 24 </ScrollViewer> 25
Padding="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"> <Grid> <ItemsPresenter TextBlock.RenderTransform> </TextBlock> </Grid> </ScrollViewer> 其中,为了实现在列表没有数据时,显示 “没有数据” 四个字,使用了一个 Grid 包含了一个 ItemsPresenter
HeaderTemplate}" HorizontalAlignment="Left" /> <ItemsPresenter ExtendedScrollViewer Grid.Row="1" Padding="{TemplateBinding Padding}"> <ItemsPresenter
Theme错了 如我用的ExpressionDark.xaml作为Theme,修改710行 <StackPanel Margin="1,1,1,1" IsItemsHost="true" /> 改为 <ItemsPresenter
/> </Border> <ItemsPresenter Top"/> <Border BorderThickness="2"> <ItemsPresenter
</returns> public bool ApplyTemplate() { // Notify the ContentPresenter/ItemsPresenter 另外,利用工具我们可以看到只有4个子类重写了TemplateInternal属性:Control、ContentPresenter、ItemsPresenter、Page,这意味着只有这4个类及其子类调用
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" > <ItemsPresenter
}"> <ScrollViewer Padding="{TemplateBinding Padding}"> <ItemsPresenter ControlTemplate> </Setter.Value> </Setter> </Style> 如上面XAML所示,Repeater的ControlTemplate中需要提供一个ItemsPresenter
ControlTemplate> </ScrollViewer.Template> <ItemsPresenter </ControlTemplate> </ScrollViewer.Template> <ItemsPresenter
相同点: 这三个控件都是列表型控件,可以进行列表绑定(ItemsSource); 这三个控件均使用ItemsPresenter来展示列表信息; 不同点: ListBox 继承于ItemsControl
> 33 </Expander.Header> 34 <ItemsPresenter
Background}"> <Image Source="ms-appx:///Assets/Wheel.png" /> <ItemsPresenter
TemplateBinding Padding}" MouseLeftButtonDown="MouseLeftButtonDown"> <ItemsPresenter
IsItemsHost属性:指示此StackPanel是否作为ItemsPresenter的主机,这允许它成为ItemsControl(如ListBox或ComboBox)的模板部分。
AutomationProperties.AccessibilityView="Raw"> <ItemsPresenter
DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}"> <ItemsPresenter
一旦用户拖某一内容放置到控件的边界时,触发创建新分组,ItemsPresenter的两个边界元素是新组的占位符。 RelativeSource={RelativeSource TemplatedParent}}"/> 58: <ItemsPresenter
如果里面的控件不是继承IScrollInfo,那么判断一下他是不是处于列表,如果是的话就拿列表ItemsPresenter作为ScrollInfo。
ReleasePart" Text="{TemplateBinding ReleasePartTemplate}"/> </Grid> </Border> <ItemsPresenter