日期:2014-05-18 浏览次数:21061 次
<RowDefinition Height="120"> <RowDefinition.Style> <Style TargetType="RowDefinition"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=cbSendSms,Path=IsChecked}" Value="True"> <Setter Property="Height" Value="120"/> </DataTrigger> <DataTrigger Binding="{Binding ElementName=cbSendSms,Path=IsChecked}" Value="False"> <Setter Property="Height" Value="0"/> </DataTrigger> </Style.Triggers> </Style> </RowDefinition.Style> </RowDefinition>
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
------解决方案--------------------
checked 应该是被选中后的事件吧
感觉你可以在mouseleftdown里面判断checkbox是否被选中(checkbox.checked)
------解决方案--------------------
如果只是折腾Grid的Row,那么把Row这行设为Auto,然后将Row里面的内容的Visibility绑定到Checkbox的IsChecked上,当然要配备一个Bool2VisibilityConverter
当IsChecked=true的时候,返回Visible,否则返回Collapsed
这里用Collapsed而不用Hidden的原因就是塌陷以后不会在Measure中跟Parent申请空间,而Hidden则会持有空间,虽然不显示,而Auto则会变为0,达到你的效果
------解决方案--------------------
貌似我还没有安装Blend ,就说怎么找不到 System.Windows.Interactivity 的引用落
------解决方案--------------------
测试过checkbox的checked事件只是在选中是才触发,取消选中时没有触发
checkbox有unchecked事件,在那里添加代码即可