Canvas
alt sınıfına girdim, böylece Render
işlevini geçersiz kılabiliyorum. WPF'de bir bitmapi nasıl yükleyeceğimi ve bunu tuvale nasıl yükleyeceğimi bilmem gerekiyor. WPF'ye tamamen yeni geldim ve size görünüşte önemsiz bir şeyi nasıl yapacağınızı gösteren herhangi bir öğretici bulamadım. Örneklerle adım adım talimatlar harika olurdu.WPF'de bitmapi tuvali nasıl oluşturulur?
9
A
cevap
11
Bu başlangıç olmalıdır: Eğer tuval arka planını boyamak istiyorsun, ben Background
olarak ImageBrush
kullanarak öneriyoruz
class MyCanvas : Canvas {
protected override void OnRender (DrawingContext dc) {
BitmapImage img = new BitmapImage (new Uri ("c:\\demo.jpg"));
dc.DrawImage (img, new Rect (0, 0, img.PixelWidth, img.PixelHeight));
}
}
3
, 'sen Onender
geçersiz kılmak için Canvas
alt sınıfı için ihtiyacım yok olarak bu kadar basit kuzen.
Ama sana sordum ne için bir demo kaynak kodu vereceğiz:
bir sınıf oluşturun bu gibi kullanabilirsiniz Şimdi
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApplication1
{
public class ImageCanvas : Canvas
{
public ImageSource CanvasImageSource
{
get { return (ImageSource)GetValue(CanvasImageSourceProperty); }
set { SetValue(CanvasImageSourceProperty, value); }
}
public static readonly DependencyProperty CanvasImageSourceProperty =
DependencyProperty.Register("CanvasImageSource", typeof(ImageSource),
typeof(ImageCanvas), new FrameworkPropertyMetadata(default(ImageSource)));
protected override void OnRender(System.Windows.Media.DrawingContext dc)
{
dc.DrawImage(CanvasImageSource, new Rect(this.RenderSize));
base.OnRender(dc);
}
}
}
(ben o ImageCanvas
aradım) : WPF
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1" Title="Window1" Height="300" Width="300">
<Grid>
<local:ImageCanvas CanvasImageSource="/Splash.png">
<TextBlock Text="Hello From Mihir!" />
</local:ImageCanvas>
</Grid>
</Window>
11
bunu yapmak istedim bir arka plan için BMP çizmek özellikle eğer OnRender
geçersiz kılmak gerekir nadir bir durumdur:
<Canvas>
<Canvas.Background>
<ImageBrush ImageSource="Resources\background.bmp" />
</Canvas.Background>
<!-- ... -->
</Canvas>