XAML 无法在ScrollViewer顶部显示UI元素

368yc8dk  于 2023-11-14  发布在  其他
关注(0)|答案(2)|浏览(100)

我正在努力在ScrollViewer的顶部显示UI元素。这应该是非常直接的,但并没有。我希望这段代码可以工作:

<Grid>
    <Button>A</Button>
    <ScrollViewer ZoomMode="Enabled" x:Name="Scroller">
        <Viewbox>
            <Rectangle Width="200" Height="200" Fill="White"/>
        </Viewbox>
    </ScrollViewer>
    <Button>B</Button>
</Grid>

字符串
但是当我放大到ScrollViewer时,它显示在两个按钮的顶部。
Behavior
Full project showcasing issue

ar5n3qh5

ar5n3qh51#

请尝试为Grid设置RowDefinitions,并将UIElements放入不同的文件夹中。
Xaml:

<Grid>
 <Grid.RowDefinitions>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="*"/>
     <RowDefinition Height="Auto"/>
 </Grid.RowDefinitions>
 <Button Grid.Row="0">A</Button>
 <ScrollViewer Grid.Row="1" ZoomMode="Enabled" x:Name="Scroller">
     <Viewbox>
         <Rectangle Width="200" Height="200" Fill="White"/>
     </Viewbox>
 </ScrollViewer>
 <Button Grid.Row="2">B</Button>
 </Grid>

字符串

ct3nt3jp

ct3nt3jp2#

第二个Button应该使用您发布的标记显示在ScrollViewer的 * 顶部 *。
请确保您没有将一些自定义的Style应用到Button,这会导致它不可见。
下面是一个完整的窗口示例:

<?xml version="1.0" encoding="utf-8"?>
<Window
    x:Class="WinUIApp.BlankWindow1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid>
        <Button>A</Button>
        <ScrollViewer ZoomMode="Enabled" x:Name="Scroller">
            <Viewbox>
                <Rectangle Width="200" Height="200" Fill="White"/>
            </Viewbox>
        </ScrollViewer>
        <Button MinHeight="100" MinWidth="100" HorizontalAlignment="Center">B</Button>
    </Grid>
</Window>

字符串
以及它在屏幕上的样子:


的数据

相关问题