Я пытаюсь свернуть Grid
, нажав на Button
. Это как моя Button
представлена в XAML:Переключить сетку, нажав кнопку
<Button Grid.Column="1" Grid.RowSpan="3" Width="25" Content="<<" Click="OnClicked" x:Name="btnCollapse"></Button>
Я хочу свернуть Grid
щелкать эту Button
(что-то вроде пристыкован окна) и вернуть Grid
щелкать на Button
снова. Это, как я могу это сделать в коде позади:
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/>
Майк, как вы собираетесь запускать событие OnClicked в XAML без использования обработчиков событий .. ?? – MethodMan
Как уже упоминалось, если вы хотите чистый XAML, вам придется избегать обработчика событий с щелчком. Как насчет флажка вместо кнопки? Вам не придется вручную вводить логику для переключения логического свойства, и вы можете напрямую привязываться к свойству 'IsChecked'. – zmb