2013-06-03 112 views
0

我目前正試圖找出自動顯示或自動隱藏界面的一部分的最佳做法。這是在兩種狀態下的應用程序的截圖:自動隱藏/自動顯示界面

enter image description here

目前有一個按鈕,允許用於切換,但根據要求,他們希望它被設置爲自動。底層的地圖也在開發中,因此它會完全互動,所以它可能不像我希望的那樣容易實現。

我想知道是否有一個簡單的方法來實現這一點。 如果不是,更高級的選擇是什麼? 這是一個不錯的主意來實現交互式地圖的ontop?

+1

你說的自動意味着什麼呢?它什麼時候會顯示,什麼時候會隱藏? – Rotem

+0

也從該屏幕截圖中可以看出,該覆蓋圖幾乎覆蓋了該地圖區域的一半。我不會閱讀該語言,但如果在地圖上有更重要的東西會怎麼樣。 – TheKingDave

+0

@Rotem當你將鼠標懸停在該區域上並隱藏它時,它的意圖是讓整個菜單和gridview顯示出來。 – Perfection

回答

1

你可以做這樣的事情:

namespace autohide 
{ 
    public partial class Form1 : Form 
    { 
     public int pin = 0; 

     public Form1() 
     { 
      InitializeComponent(); 
      panel1.Visible = false; 

     } 
     void ChangeIconPin() 
     { 
      switch (pin) 
      { 
       case 0: 
        //Changes the pin-icon to display a unpinned frame. 
        this.button_Pin.BackgroundImage = autohidefixv2.Properties.Resources._55_roto; 
        break; 

       case 1: 
        //Changes the pin-icon to display a pinned frame. 
        this.button_Pin.BackgroundImage = autohidefixv2.Properties.Resources._55_2; 
        break; 

       default: 
        Console.WriteLine("sdasdad"); 
        break; 
      } 
     } 


     private void button1_MouseHover(object sender, EventArgs e) 
     { 
      panel1.Visible = true; 
     } 

     private void Form1_MouseEnter(object sender, EventArgs e) 
     { 
      if (pin == 0) 
      { 
       panel1.Visible = false; 
      } 
      else 
      { 
       return; 
      } 
     } 

     private void button_Pin_Click(object sender, EventArgs e) 
     { 
      switch (pin) 
      { 
       case 0: 
        pin = 1; 
        ChangeIconPin(); 
        break; 
       case 1: 
        pin = 0; 
        ChangeIconPin(); 
        break; 
       default: 
        Console.WriteLine("asdasda"); 
        break; 
      } 
     } 
    } 
} 

我還添加了如果需要,用戶可以釘住面板自動隱藏禁用引腳。您可以在這裏找到一個樣本項目: https://dl.dropboxusercontent.com/u/11441219/autohidefixv2.zip

enter image description here

+0

看起來很穩固,謝謝! – Perfection