Pregunta

He establecido un fondo de lienzo para una imagen del logotipo de una empresa. Me gustaría que esta imagen esté alineada con la esquina inferior derecha del lienzo.
¿Es posible hacer esto, o requeriría que la imagen se agregue al lienzo cuando era niño? Eso no funcionaría con este programa ya que todos los elementos secundarios del lienzo se manejan de manera diferente.

Gracias

¿Fue útil?

Solución

¿Funcionará esto? (Funcionó para mí, de todos modos.)

  <Canvas>
    <Canvas.Background>
      <ImageBrush ImageSource="someimage.jpg" AlignmentX="Right" 
          AlignmentY="Bottom" Stretch="None" />
    </Canvas.Background>
  </Canvas>

Otros consejos

AFAIK El lienzo de WPF necesita elementos de interfaz de usuario secundarios para posicionarse utilizando coordenadas absolutas. Para lograr el efecto anclado en la parte inferior derecha, creo que necesitaría controlar el evento de cambio de tamaño de la ventana, volver a calcular y aplicar las coordenadas Superior, Izquierda para que el elemento de imagen secundario siempre se adhiera al esquina inferior derecha.

<Window x:Class="HelloWPF.Window1" xmlns...
    Title="Window1" Height="300" Width="339">
    <Canvas>
        <Image Canvas.Left="195" Canvas.Top="175" Height="87" Name="image1" Stretch="Fill" Width="122" Source="dilbert2666700071126ni1.gif"/>
    </Canvas>
</Window>

¿Qué tal si contiene el lienzo y la imagen dentro de un control Grid así?

<Window ...>
  <Grid>
    <Canvas/>
    <Image HorizontalAlignment="Right" VerticalAlignment="Bottom" .../>
  <Grid>
</Window>

Esta es mi solución usando un borde dentro del lienzo para alinear la imagen. Esta solución funciona bien cuando se cambia el tamaño del lienzo:

<Canvas x:Name="MiCanvas" Height="250" Width="500" Background="Aqua">
    <Border x:Name="MiBorderImage" 
            Width="{Binding ElementName=MiCanvas, Path=ActualWidth}"
            Height="{Binding ElementName=MiCanvas, Path=ActualHeight}"
            Background="Transparent">
        <Image x:Name="MiImage" Source="/GraphicsLibrary/Logos/MiLogo.png"
               HorizontalAlignment="Right" 
               VerticalAlignment="Bottom" 
               Stretch="None" />
    </Border>
 </Canvas>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top