2011-04-15 84 views
0

我開始自學C#一個星期前。我開始寫俄羅斯方塊讓自己熟悉這門語言。我得到了主要的遊戲機制,通過在預先製作的位圖上繪畫並將其顯示在一個picturebox中,當時它的大小與窗口大小相同。現在我已經擴大了窗口大小,並開始在圖片框的一側添加其他控件。形成背景顏色或圖像卡住爲白色

現在的問題是,現在我已經擴大了窗口,顯示窗體背景,背景顏色永久是白色的,或者我在底部角落看到一個奇怪的白色到黑色的褪色。

我已經試過幾件事情:
    - 手動設置窗體背景色,但它僅反映在標籤
    - 檢查了transparencykey是空
    - 設置transparencykey爲一個未使用顏色,沒有任何變化
      - 增加了一個bmp作爲窗體的背景圖像,仍然保持白色
    - 檢查我的代碼,看看我是否每次都直接寫入表單背景

我不能指出如何解決這個問題;有沒有人有任何想法?編輯:
我找到了我的問題的答案。 SetStyle(ControlStyles.Opaque,true)在我的構造函數中被調用。我不確定那究竟是什麼,但是我評論了它並解決了我的問題。

回答

0

我找到了答案,我的問題。 SetStyle(ControlStyles.Opaque,true)在我的初始化中被調用。我不確定究竟是什麼,但它是我背景顏色問題的原因。

1

請列出需求意味着你需要什麼?

當我讀你的問題。以下是我的理解。

如果你的問題是改變窗口大小,然後

  • 化妝用分割容器,這是在工具箱可從 「集裝箱」組 的。

  • 設置其碼頭屬性填寫 填滿整個窗口,如果大小/最大化 。

  • 然後使用右窗格來包含您的圖片框和其他控件的左窗格。

  • 如果您需要,您還可以設置圖片框的浮動屬性填充到其父容器意味着右窗格。

如果你的問題是與窗口的背景顏色,然後

  • 其實背景顏色問題來了,如果表單MDI容器。

  • 的IsMdiContainer屬性檢查是否設置爲false。如果它是真的,它是一個MdiContainer。

  • 以下代碼塊將Mdi窗體的背景顏色設置爲窗體背景顏色。

    foreach (Control c in this.Controls) 
    { 
        if (c is MdiClient) 
        { 
         c.BackColor = this.BackColor; 
        } 
    }