我正在嘗試創(chuàng)建一個(gè)按鈕,其行為類似于iPhone上的“滑動(dòng)”按鈕。我有一個(gè)動(dòng)畫,可以調(diào)整按鈕的位置和寬度,但我希望這些值基于控件中使用的文本。目前,它們已被硬編碼。到目前為止,這是我正在使用的XAML:<CheckBox x:Class="Smt.Controls.SlideCheckBox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Smt.Controls" xmlns:System.Windows="clr-namespace:System.Windows;assembly=PresentationCore" Name="SliderCheckBox" mc:Ignorable="d"> <CheckBox.Resources> <System.Windows:Duration x:Key="AnimationTime">0:0:0.2</System.Windows:Duration> <Storyboard x:Key="OnChecking"> <DoubleAnimation Storyboard.TargetName="CheckButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Duration="{StaticResource AnimationTime}" To="40" /> <DoubleAnimation Storyboard.TargetName="CheckButton" Storyboard.TargetProperty="(Button.Width)" Duration="{StaticResource AnimationTime}" To="41" /> </Storyboard>當(dāng)我嘗試將DoubleAnimations中的“ To”屬性綁定到文本的實(shí)際寬度時(shí),就出現(xiàn)了問題,就像在ControlTemplate中所做的一樣。如果將值綁定到ControlTemplate中某個(gè)元素的ActualWidth,則該控件將顯示為空白復(fù)選框(我的基類)。但是,我綁定到ControlTemplate本身中的相同ActualWidths,沒有任何問題。似乎只是CheckBox.Resources出現(xiàn)了問題。例如,以下將破壞它: <DoubleAnimation Storyboard.TargetName="CheckButton" Storyboard.TargetProperty="(Button.Width)" Duration="{StaticResource AnimationTime}" To="{Binding ElementName=CheckedText, Path=ActualWidth}" />我不知道這是否是因?yàn)樗噲D綁定到在渲染過程完成之前或其他情況下不存在的值。有人對(duì)這種動(dòng)畫綁定有任何經(jīng)驗(yàn)嗎?
WPF動(dòng)畫:綁定到情節(jié)提要?jiǎng)赢嫷?ldquo; To”屬性
胡說叔叔
2019-10-11 14:18:54