在 VS 2017 上安裝 Xamarin 後,開啟 VS 跳出的錯誤訊息,在這篇 建立 Xamarin.Forms 新專案,發生 未正確載入套件 'XamarinAndroidPackage' 錯誤 找到解法,不過也發現這問題跟 Xamarin 沒有絕對關係就是
刪除該路徑C:\Users\%username%\AppData\Local\Microsoft\VisualStudio\15.0\ComponentModelCache 下所有檔案並重啟 VS 就行啦
星期五, 3月 30, 2018
星期五, 3月 02, 2018
[C#] MDI 子視窗最大化
Line 群上問題
MDI Form 內找不到屬性可以直接設定來取消這樣的情況,所以是透過 MdiChildActivate Event 搭配 ActiveMdiChild Property 把 WindowsState 設回去
按下 Button 產生 5 個 Form 來觀察
把 Form5 變成 Max 後,父視窗的 Text 屬性,會有目前 Active 子視窗的 Text 內容
把 Form 5 關閉,Form4 不會是 Max,而是建立時的預設值 Normal
MDI內的子視窗若開啟一個以上,如果其中一個子使窗放大或縮小 (WindowState=Maximized or WindowState=Minimized),其他的子視窗也會一併的被放大或縮小,是否有方式可以讓其他子視窗不要受到影響可以維持原有的狀態實務上子視窗都是使用 Max,剛好有興趣來了解,還真的有這樣的特性,當 MDI 父視窗內的子視窗為 Max 時,把子視窗關閉,下一個Active 子視窗也會被 Max
MDI Form 內找不到屬性可以直接設定來取消這樣的情況,所以是透過 MdiChildActivate Event 搭配 ActiveMdiChild Property 把 WindowsState 設回去
namespace MDIWindowState
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void BtnForm_Click(object sender, EventArgs e)
{
FormWindowState WindowStateSetting = FormWindowState.Normal;
for (int i = 1; i <= 5; i++)
{
Form f = new Form
{
MdiParent = this,
Text = $"第{i}個 Form",
WindowState = WindowStateSetting,
// 把 WindowState 初始化設定值存在 Tag 內
Tag = WindowStateSetting
};
f.Show();
}
}
private void Form1_MdiChildActivate(object sender, EventArgs e)
{
Form f = (Form)this.ActiveMdiChild;
if (f == null)
{
return;
}
f.WindowState = (FormWindowState)f.Tag;
}
}
}
按下 Button 產生 5 個 Form 來觀察
把 Form5 變成 Max 後,父視窗的 Text 屬性,會有目前 Active 子視窗的 Text 內容
把 Form 5 關閉,Form4 不會是 Max,而是建立時的預設值 Normal
![[VS] 未正確載入套件](https://farm1.staticflickr.com/882/26225353957_07d9c72498.jpg)
![[VS] 未正確載入套件-2](https://farm1.staticflickr.com/795/27224107358_d3784e31c6_z.jpg)
![[C#] MDI 子視窗最大化-1](https://farm5.staticflickr.com/4716/39864812674_8ddd3035fd_z.jpg)
![[C#] MDI 子視窗最大化-2](https://farm5.staticflickr.com/4724/39864812804_7a93a3aa7d_z.jpg)
![[C#] MDI 子視窗最大化-3](https://farm5.staticflickr.com/4652/39864812524_8e95ea34b9_z.jpg)