Pregunta

Quiero unir una posición listas para su propia altura en XAML. Por lo que su esquina inferior izquierda siempre será a 0.0 de la lona. Estoy usando elementBinding para obtener el ActualHeight y un convertidor para invertir la propiedad. Pero la altura enviado al convertidor es 0.

¿Cómo puedo solucionar esto o voy en este el camino equivocado?

<Canvas x:Name="DisplaySurface">
    <ListBox x:Name="MenuList" Visibility="Visible"  
             Canvas.Top="{Binding ElementName=MenuList, Path=ActualHeight, 
             Converter={StaticResource LamdaConv}, ConverterParameter='val=>-val'}">

         <ListBoxItem Content="item 1" />
         <ListBoxItem Content="item 2" />
         <ListBoxItem Content="item 3" />
         <ListBoxItem Content="item 4" />
         <ListBoxItem Content="item 5" />
         <ListBoxItem Content="item 6" />
     </ListBox>
</Canvas>
¿Fue útil?

Solución

Trate la unión {Binding ActualHeight, RelativeSource={RelativeSource Self},Converter={StaticResource LamdaConv}, ConverterParameter='val=>-val'}

Otros consejos

Me suena como que está utilizando el control equivocada para el trabajo. Un Grid puede manejar esto sin todo este esfuerzo: -

 <Grid>

    <Canvas x:Name="DisplaySurface">
    </Canvas>
    <ListBox HorizontalAlignment="Left" VerticalAlignment="Bottom" ...>
       <!-- items --->
    </ListBox>
</Grid> 

Ahora el ListBox siempre aparece en la esquina inferior izquierda. No sólo eso, pero si la altura total disponible es inferior a la altura de todo el contenido en el cuadro de lista que se limitará a la altura disponible y mostrar la barra de desplazamiento. Algo que su código de lo contrario tendría que pasar por el aro de trabajar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top