【发布时间】:2012-12-19 00:20:25
【问题描述】:
我正在尝试通过单击 Button 来折叠 Grid。这就是我的Button 在 xaml 中的表示方式:
<Button Grid.Column="1" Grid.RowSpan="3" Width="25" Content="<<" Click="OnClicked" x:Name="btnCollapse"></Button>
我想在单击此Button(类似于停靠窗口)时折叠Grid,并在再次单击Button 时恢复Grid。这就是我在后面的代码中这样做的方式:
private bool clicked;
private void OnClicked(object sender, RoutedEventArgs e)
{
clicked = !clicked;
//leftPane is my grid
leftPane.Visibility = clicked ? Visibility.Collapsed:Visibility.Visible;
btnCollapse.Content = clicked ? ">>" : "<<";
}
这很好用,我的问题是我怎样才能纯粹在 xaml 中而不是在后面的代码中表示这个逻辑?
我的布局:
<Grid>
<Grid/>
<GridSplitter/>
</Grid>
<Button/>
【问题讨论】:
-
Mike 你打算如何在不使用事件处理程序的情况下触发 XAML 中的 OnClicked 事件..??
-
如前所述,如果您想要纯 XAML,则必须避免单击事件处理程序。复选框而不是按钮怎么样?您不必手动实现逻辑来切换布尔属性,并且可以直接绑定到
IsChecked属性。