C# Windows Phone - xaml ListBox.ItemTemplate 中的对齐方式

2024-04-25

我想做一个简单的列表框。每行应包含 2 个控件,一个左对齐,另一个右对齐,仅此而已:) 我尝试了多种方法但没有任何效果。我的代码如下

<StackPanel Grid.Row="1" Margin="12,0,12,0" Grid.Column="0">
        <ListBox Name="ListBox" Margin="12,0,12,0" ItemsSource="Exercises" HorizontalContentAlignment="Stretch">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Width=">
                        <TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                        <TextBlock Text="def" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </StackPanel>

(两个文本块仅供演示,在实际应用中,我想将一个文本块绑定到实际数据,而不是第二个滥用按钮。) 当我编译这个时,两个文本块都向左对齐,在模拟器中,它看起来像是一个带有文本“abcdef”的文本块。 知道如何将一个文本块向右对齐,另一个文本块向左对齐吗? 非常感谢 :)


默认情况下,ListBoxItem 不会填充给定的空间。它将自身和内容向左对齐。为了确保 ListBoxItem 的内容跨越整个宽度,您需要更改 ItemContainerStyle

<ListBox>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

现在内容将跨越可用宽度。如果您希望像示例中那样使用 StackPanel,请确保也设置它的 Horizo​​ntalAlignment。 StackPanel 也不会填充给定的可用空间

<DataTemplate>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
        <TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
        <TextBlock Text="def" HorizontalAlignment="Right" VerticalAlignment="Center"/>
    </StackPanel>
</DataTemplate>

但是,我建议使用网格并定义两列

<DataTemplate>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
        <TextBlock Text="def" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
    </Grid>
</DataTemplate>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Windows Phone - xaml ListBox.ItemTemplate 中的对齐方式 的相关文章

随机推荐

  • 在reactjs中以编程方式取消选中复选框

    我正在弄乱复选框 我想知道有没有一种方法可以通过调用函数来取消选中单击按钮时的复选框 如果是这样 我怎样才能做到这一点
  • 实现类 Markdown 语言的解析器

    我有类似于 markdown 和 SO 使用的标记语言 遗留解析器基于正则表达式 维护起来简直是噩梦 因此我提出了自己的基于 EBNF 语法的解决方案 并通过 mxTextTools SimpleParse 实现 但是 某些令牌可能存在相互
  • CMake 64 位和 SFML 64 位

    我正在尝试使用适用于 Windows 的 CMake 64 位和 SFML 2 5 1 64 位构建 C 项目 当我在项目上运行 cmake 时 我收到一条错误消息 我能让它工作的唯一方法是改变CMAKE PREFIX PATH指向 SFM
  • 读取请求正文两次

    我试图读取中间件中的主体以进行身份 验证 但是当请求到达 api 控制器时 对象为空 因为主体已被读取 有没有办法解决 我在中间件中像这样读取正文 var buffer new byte Convert ToInt32 context Re
  • 如果图像比其容器宽,如何将图像居中?

    通常 您将图像居中display block margin auto 但如果图像比容器大 则会向右溢出 如何使其均匀地向两侧溢出 容器的宽度是固定且已知的 图像的宽度未知 纯CSS解决方案 需要一个额外的包装器 在 FireFox IE8
  • 不同数据类型的内存对齐方式是否不同

    在C中执行不同的数据类型 例如char short int long float double有不同的内存对齐边界吗 在 32 位字对齐字节可寻址操作系统中 如何访问char or short与访问不同int or float 在这两种情况
  • html5在移动设备中自动播放视频

    Auto play is not working without muted attribute when I try to open url in mobile device How to play video without using
  • PreLoader 的多线程 - JavaFX

    我正在开发一个 JavaFX 应用程序 需要在启动主应用程序阶段之前从文件中加载资源 我完成此任务的解决方案是使用 PreLoader 以便用户在加载资源之前无法与应用程序交互 非常标准的东西 我有一个扩展 PreLoader 类的类 该类
  • 有没有办法从 VS2010 中的建模项目生成代码?

    有没有办法从 VS2010 中的建模项目生成代码 看来这个功能即将到来 但 Beta2 中还没有 微软的拉梅什 拉贾戈帕尔回答类似的问题 http social msdn microsoft com Forums en US vstspre
  • 如何将回车符作为字符添加到文件中?

    我想要一个像这样的字符串 blablbabla
  • Flexbox,保持纵横比的方形 div 的响应式网格

    我正在尝试用 div 创建一个 2x2 网格 某些 div 可能包含图像 但它可能会被设置为背景 并带有选项background size cover 这是我创建的笔 http codepen io qarlo pen vLEprq htt
  • 如何使用 Arquillian Weld EE Embedded 测试 EJB 方法调用

    我想测试 EJB 并且想使用 Weld EE Embedded 来测试它 因为我不想为此部署应用程序服务器 这是我的课程 RunWith Arquillian class public class EJBTest Deployment pu
  • 将 Sql Server 与 Django 2.0 结合使用

    我想将 Django 2 0 与旧版 MS SQL Server 数据库一起使用 我能找到的有关使用 Django 与 MS SQL Server 的最新信息是在生产中使用 Sql Server 和 Django 这些天 https sta
  • Java 线程转储:阻塞线程而不“等待锁定...”

    我很难理解从 jstack 获得的 Tomcat 6 java 1 6 0 22 Linux 上运行的 Spring MVC Web 应用程序的线程转储 我看到阻塞线程 导致其他线程等待 本身被阻塞 但是线程转储并没有告诉我原因或它们正在等
  • removeEventListener 的行为

    请检查以下代码 var clickfn function alert clicked document getElementById div1 addEventListener click clickfn true clickfn func
  • Arc4随机模偏置

    根据本文档 https developer apple com library mac documentation darwin reference manpages man3 arc4random 3 html arc4random un
  • ggplot2、geom_bar、闪避、条形顺序

    我想订购道奇酒吧geom bar 你知道如何处理吗 My code ttt lt data frame typ rep c main boks cuk 2 klaster rep c 1 2 3 ile c 5 4 6 1 8 7 ggpl
  • PHP password_hash 检查两个哈希值

    如果我有两个使用创建的密码哈希password hash http www php net manual en function password hash php函数 我如何判断它们是否来自相同的基本密码 我知道它每次都使用不同的盐 我没
  • 如何使用 SDK 3.1 指定用户用于发布的应用程序名称(通过应用程序名称)

    使用新的 Facebook SDK 3 1 和 iOS 6 有 2 种 实际上 3 种 发帖方式 似乎新的趋势是有更多的选择 使其更简单 天哪 这是一个 SLComposeViewController fbPost SLComposeVie
  • C# Windows Phone - xaml ListBox.ItemTemplate 中的对齐方式

    我想做一个简单的列表框 每行应包含 2 个控件 一个左对齐 另一个右对齐 仅此而已 我尝试了多种方法但没有任何效果 我的代码如下