Domanda

Ho impostato uno sfondo di tela su un'immagine del logo di una società. Vorrei che questa immagine fosse allineata all'angolo in basso a destra della tela.
È possibile farlo o richiederebbe che l'immagine venga aggiunta alla tela da bambina? Ciò non funzionerebbe con questo programma poiché tutti i bambini della tela sono gestiti in modo diverso.

Grazie

È stato utile?

Soluzione

Funzionerà? (Ha funzionato per me, comunque.)

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

Altri suggerimenti

AFAIK La tela WPF ha bisogno di posizionare elementi dell'interfaccia utente figlio usando coordinate assolute. Per ottenere l'effetto ancorato in basso a destra, penso che dovresti gestire l'evento di ridimensionamento della finestra, ricalcolare e applicare le coordinate Superiore, Sinistra affinché l'elemento Immagine figlio si attenga sempre al angolo in basso a destra.

<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>

Che ne dici di contenere la tela e l'immagine all'interno di un controllo Grid in questo modo?

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

Questa è la mia soluzione usando un bordo all'interno dell'area di disegno per allineare l'immagine. Questa soluzione funziona bene quando la tela viene ridimensionata:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top