簡體   English   中英

C#初始化類

[英]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>

以上應該已經成功了。 請注意,我還為圖像設置了WidthHeight值。 無需代碼即可實現此目的。

如果你真的想在開始的代碼中設置圖像,你需要在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM