[英]C# initialize class
我在vs2010中創建了wpf應用程序。 我有一個簡單的問題。
我有一個類來顯示圖像:
private void displayImage()
{
newImage.Width = 900;
newImage.Height = 700;
BitmapImage testim = new BitmapImage();
testim.BeginInit();
testim.UriSource = new Uri("E:\\WpfApplication1\\Images\\test.jpg");
testim.EndInit();
newImage.Source = testim;
}
XAML:
<ScrollViewer Name="MyScrollViewer" CanContentScroll="True" HorizontalScrollBarVisibility="Visible" Grid.Row="1" Grid.Column="1" >
<Image Name="newImage" ImageFailed="newImage_ImageFailed" HorizontalAlignment="Right" Margin="10" />
</ScrollViewer>
要初始化它,我調用displayImage();
從另一個班級。
我想在運行應用程序后立即看到此圖像。 我想如何初始化它而不從另一個類調用它?
非常感謝。
問候
我不確定你為什么試着在代碼中設置它。 在XAML中設置它更容易:
<ScrollViewer Name="MyScrollViewer" CanContentScroll="True" HorizontalScrollBarVisibility="Visible" Grid.Row="1" Grid.Column="1" >
<Image Name="newImage" ImageFailed="newImage_ImageFailed"
HorizontalAlignment="Right" Width="900"
Height="700" Margin="10" Source="/Images/test.jpg" />
</ScrollViewer>
以上應該已經成功了。 請注意,我還為圖像設置了Width
和Height
值。 無需代碼即可實現此目的。
如果你真的想在開始的代碼中設置圖像,你需要在WPF頁面/窗口的構造函數中。 在創建類時,將調用類的構造函數。 在這種情況下,當需要創建Window或Page時,應用程序執行的第一件事就是調用構造函數。 在這個構造函數中,應用程序還了解到必須構建一些圖形化的東西。 這就是構造函數的工作方式。
在InitializeComponent();
,你可以放入你喜歡的任何東西。 例如:
public partial class MainWindow : Page
{
public MainWindow()
{
InitializeComponent();
displayImage();
}
private void displayImage()
{
newImage.Width = 900;
newImage.Height = 700;
BitmapImage testim = new BitmapImage();
testim.BeginInit();
testim.UriSource = new Uri("E:\\WpfApplication1\\Images\\test.jpg");
testim.EndInit();
newImage.Source = testim;
}
}
如果路徑是動態的,則綁定圖像是最佳實踐。 在你的XAML中,有類似的東西:
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding Path=ImagePath}" />
</Image.Source>
</Image>
所以UriSource綁定到你的ImagePath
。 在代碼中,具有以下內容:
public BitmapImage ImagePath
{ get { return testim; } }
所以它受此限制。 如果更改該值,則綁定會確保GUI中的值隨之更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.