En un WPF ToolBarPanel-ToolBar-Menu anidado, queremos deshacernos del control de agarre a la izquierda y el área de desbordamiento a la derecha. Ambos están atenuados, pero nos gustaría que no se mostraran en absoluto.
¿Alguna idea sobre cómo lograrlo?
en caso de que mis términos no sean del todo correctos, si miras la imagen en la Figura 3 del enlace a continuación, en la más baja de las tres barras de herramientas está el agarre a la izquierda del menú desplegable y a la derecha de la más a la derecha botón hay el desbordamiento.
Respuestas:
El agarre se puede quitar estableciendo la propiedad adjunta
ToolBarTray.IsLocked="True"
en la barra de herramientas.Para eliminar el Overflow ToggleButton , tendrá que eliminarlo en una ControlTemplate personalizada como sugieren las variables de seis letras, que si tiene una mezcla o puede descargar la Vista previa de Blend 3 no es demasiado difícil.
También puede ocultar el botón en el evento cargado de la barra de herramientas, aunque sea cual sea la ruta que tome, también debe establecer la propiedad adjunta
ToolBar.OverflowMode="Never"
en el menú de la barra de herramientas, de modo que los elementos no se desborden accidentalmente en un área inalcanzable.Y establezca Overflow ToggleButton en contraído:
fuente
Puede usar Blend para anular simplemente ControlTemplate para ToolBarPanel, Menu o ToolBar.
Ahora editará la plantilla de control para ToolBarPanel y puede establecer la visibilidad en Contraído para la señal de agarre y desbordamiento. Puede enjuagar y repetir para los otros controles. Lleva un poco de tiempo, pero no es muy difícil con Blend.
fuente
Puede "eliminar" el desbordamiento sin proporcionar una nueva plantilla de control configurando
ToolBar
para que tenga márgenes derechos negativos (y agregue un margen izquierdo negativo para que no se vea extraño con bordes izquierdos redondeados pero bordes derechos cuadrados). Luego, agregueClipToBounds="True"
loToolBarPanel
que cortará los bordes de la barra de herramientas que ahora se pegan fuera del área del panel.fuente
En lugar de ocultar el botón de desbordamiento por completo, creo que es mejor mostrarlo solo cuando sea necesario. Esto se puede hacer vinculando su
Visibility
propiedad a suIsEnabled
propiedad:(se puede hacer lo mismo en XAML redefiniendo la plantilla)
fuente
Recién estoy comenzando con WPF y no pude obtener ninguno de los métodos anteriores para ocultar mi flecha de desbordamiento (Visual Studio 2010). Lo único que pareció afectar la flecha fue el ejemplo Toolbar_Load anterior, pero todo lo que hizo fue convertir la flecha en un espacio vacío que se veía tan mal como la flecha. La forma más fácil que pude imaginar fue simplemente establecer los márgenes de la barra de herramientas.
fuente
Los métodos anteriores funcionan para ocultar el desbordamiento; He utilizado lo siguiente para ocultar la pinza:
para un diseño horizontal, y
para un diseño vertical. Coloque lo anterior después de la barra de herramientas (o la bandeja de la barra de herramientas, si la usa)
Utilice el Ancho y Alto que necesite para sus botones.
Kaxaml es excelente para jugar con estas cosas.
fuente