Avalonia에서 ToggleButton 사용
5811 단어 avaloniacsharptogglebutton
ToggleButton
puede ser usado para muchas cosas. Este control es nada más y nada menos que un botón con la función de un 체크박스.Si has leído la documentación de Avalonia, es posible que te hayas encontrado con el ejemplo de uso del control
ToggleButton
. Sin embargo, el uso que ahí se muestra es muy específico; es probable que quieras usar este botón de algún otro modo que no sea el que ahí indican. 기술 문서: para mostrarte cómo puedes usar este control de otra forma. Concretamente, el ejemplo que creé para este artículo oculta y muestra otro control cuando el botón es cliqueado.가장 중요한 것은 미국 ReactiveUI를 사용하는 것입니다. Asegúrate de Haber instalado este paquete en tu aplicación para poder usar este codigo tal como aquí está (si creaste una nueva aplicación de Avalonia que usa la estructura MVVM, el paquete ya se habrá defect instal) 설치
Ejemplo de uso del control ToggleButton
Primero, añade la etiqueta en el archivo
.axaml
de la View de tu application:<ToggleButton IsChecked="{Binding Path=ShowControl}" Content="Hazme clic"/>
Como ves, la propiedad
IsChecked
관련 참조ShowControl
en tu ViewModel. Vayamos ahora a este archivo: el ViewModel.private bool _showControl;
public bool ShowControl
{
get => _showControl;
set => this.RaiseAndSetIfChanged(ref _showControl, value);
}
Agrega el código de arriba dentro de la clase de tu ViewModel. Lo que hace esta porción de código es crear un campo de respaldo que guardará el valor del estado del
ToggleButton
. La propiedad pública toma ese valor y lo devuelve cuando es necesario. Cuando toca cambiarlo, llama al método set
, que a su vez llama al método RaiseAndSetIfChanged
, 놀라운 파라 퀘 라 애플리카시온 renderice el contenido una vez más cam sebio da . Lee la documentación sobre ViewModels de ReactiveUI para más información.Los valores del control
ToggleButton
son los mismos que los del control CheckBox
: True
y False
. Es por esto que trabajar con este control es sumamente sencillo.Por último solo queda hacer que el valor de la propiedad
IsVisible
del control que queramos sea la propiedad que creamos en el ViewModel, es decir: ShowControl
.<StackPanel IsVisible="{Binding Path=ShowControl}">
<TextBlock>¡Visible!</TextBlock>
</StackPanel>
El valor de la propiedad
IsVisible
del control StackPanel
está vinculado al valor del ToggleButton
. Intuitivamente, el StackPanel
no se muestra cuando el botón está apagado (es decir, cuando el valor de la propiedad es False
); cuando está encendido (es decir, cuando el valor de la propiedad es True
), se Mostrará el StackPanel
.El control
ToggleButton
está apagado por defecto (a no ser que guardes su estado en los ajustes de usuario de la aplicación). Debido a este comportamiento, el botón hará aparecer el StackPanel
cuando sea activado y lo hara desaparecer cuando sea desactivado. Si quieres invertir este comportamiento, es tan simple como añadir el signo «!» antes del nombre de la propiedad en el valor de la propiedad del control que quieras. En el ejemplo de este artículo, el resultado sería: IsVisible="{Binding Path=!ShowControl}"
. Para más información sobre la conversión de valores de propiedades, lee la sección « Converting Binding Values » en la documentación de Avalonia.Diferencia entre este ejemplo y el de la documentación
En mi opión, el ejemplo de la documentación de Avalonia es muy específico para ser útil para los desarrolladores que quieren aprender cómo usar este control. Además de eso, Hace que el botón funcione cambiando los estilos de los demás controles basándose en el estado del botón. A mi juicio, es mucho más facil usar una proiedad definida en el ViewModel: necessitarás escribir menos codigo y el valor se realizará al Instante gracias a ReactiveUI.
Recuerda que esto es solo un ejemplo. Puedes hacer cualquier otra cosa con este control, ya sea abrir una nueva ventana, cambiar los ajustes de la aplicación, empezar una animación 등
Reference
이 문제에 관하여(Avalonia에서 ToggleButton 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/josedefreitas/como-usar-togglebutton-en-avalonia-2d0m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)