سؤال

لقد قمت بتعيين خلفية قماشية لصورة شعار الشركة.أرغب في محاذاة هذه الصورة إلى الزاوية اليمنى السفلية من اللوحة القماشية.
هل من الممكن القيام بذلك أم أنه سيتطلب إضافة الصورة إلى اللوحة القماشية عندما تكون طفلاً؟لن ينجح ذلك مع هذا البرنامج حيث يتم التعامل مع جميع الأطفال في اللوحة القماشية بشكل مختلف.

شكرًا لك

هل كانت مفيدة؟

المحلول

وسيكون هذا العمل؟ (عملت بالنسبة لي، على أي حال).

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

نصائح أخرى

AFAIK يحتاج WPF Canvas إلى وضع عناصر واجهة المستخدم الفرعية باستخدام الإحداثيات المطلقة.لتحقيق التأثير المثبت على الجانب الأيمن، أعتقد أنك ستحتاج إلى ذلك التعامل مع حدث تغيير حجم النافذة، وإعادة حساب الإحداثيات العلوية اليسرى وتطبيقها لكي يلتصق عنصر الصورة الطفل دائمًا بالزاوية اليمنى.

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

وماذا عن الذي يحتوي على قماش والصورة داخل عنصر تحكم الشبكة مثل ذلك؟

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

وهذا هو بلدي الحل باستخدام الحدود داخل قماش لمحاذاة الصورة. هذا الحل يعمل بشكل جيد عندما يتم تغيير حجم قماش:

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top