【问题标题】:Accessing XAML Object Variables in XAML在 XAML 中访问 XAML 对象变量
【发布时间】:2012-10-30 07:29:34
【问题描述】:

所以,我要做的是访问我的表单的宽度和/或高度以在情节提要中使用。本质上,我有一个翻译变换动画来滑动本质上是两页的内容。动画适用于硬编码的 From/To 变量,但是我需要使用软变量来使动画从表单的左/右开始,无论它是什么大小。

<Storyboard x:Key="SlideLeftToRight"  
                TargetProperty="RenderTransform.(TranslateTransform.X)"
                AccelerationRatio=".4"
                DecelerationRatio=".4">
     <DoubleAnimation Storyboard.TargetName="PageViewer" Duration="0:0:0.6" From="WindowWidth" To="0"/>
     <DoubleAnimation Storyboard.TargetName="BorderVisual" Duration="0:0:0.6" From="0" To="NegativeWindowWidth"/>
</Storyboard>

但是,我不知道该怎么做。非常感谢任何帮助。

编辑:我猜它与:

From="{Binding Width, Source=MainWindow}"

但是,当我尝试这样做时,我不知道如何使它成为负数。

【问题讨论】:

    标签: wpf vb.net xaml variables


    【解决方案1】:

    ElementName=MainWindow代替,用ActualWidth代替Width

    From="{Binding ActualWidth, ElementName=MainWindow}"/&gt;

    (确保窗口中也有x:Name=MainWindow

    如果您想要当前值的负数,则必须使用Converter

    【讨论】:

    • 旁注:不要将Window 称为“表单”,因为它不是。
    • 好的,干杯,现在就试试。我忍不住称它为表单...在 WinForms 中编程的时间太多(仅刚开始 WPF)
    • 另一个旁注:WPF 对象没有“变量”,它们有Properties
    • 再补充一点:欢迎来到人类历史上最好的 UI 框架 =)
    • 我是否正确猜测 ActualWidth 给出了包括边框在内的整个窗口的总宽度(我有一个带自定义边框的无边框窗口)并且宽度只给出了不包括边框的窗口宽度?通过使用 ActualWidth,我的动画现在遍布自定义边框。我应该再次使用宽度吗?
    猜你喜欢
    • 2014-09-26
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2011-07-23
    相关资源
    最近更新 更多