首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF RotateTransform角度属性绑定问题

WPF RotateTransform角度属性绑定问题
EN

Stack Overflow用户
提问于 2021-10-28 18:36:56
回答 1查看 50关注 0票数 1

我有一个ListBox.ItemTemplate定义为

代码语言:javascript
复制
<DataTemplate>
    <Border
        x:Name="dotBorder"
        ...
        Cursor="Hand">
        <Grid
            x:Name="dot"
            Height="58"
            HorizontalAlignment="Stretch"
            Tag="{Binding Id}">
            ...
            <Border Grid.Column="3" PreviewMouseDown="Arrow_PreviewMouseLeftButtonDown">
                <TextBlock
                    x:Name="arrow"
                    ...>
                    <TextBlock.RenderTransform>
                        <RotateTransform Angle="{Binding IsExpanded, Converter={StaticResource boolToValue}, ConverterParameter=90}" />
                    </TextBlock.RenderTransform>
                </TextBlock>
            </Border>
        </Grid>
    </Border>
</DataTemplate>

我的问题是RotateTransform似乎不知道IsExpanded什么时候改变,所以转换器不会被触发。我尝试过使用RelativeSource、ElementName等声明绑定,但都无济于事。未显示任何绑定错误。有什么想法吗?

稍后编辑:

发现了一些奇怪的行为:如果我在运行时对TextBlock xaml做了一个小的修改(例如删除VerticalAlignment),那么一切都会按预期开始工作--绑定会自动“修复”自己。这就像RotateTransformDataContext在那之前不会被加载。

EN

回答 1

Stack Overflow用户

发布于 2021-10-29 12:50:34

RendeTransform是一个封装孤岛,所以我认为您需要以不同的方式进行绑定-类似于:

代码语言:javascript
复制
 <RotateTransform Angle="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Path=DataContext.IsExpanded, Converter={StaticResource boolToValue}, ConverterParameter=90}" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69759283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档