所以我想爲應用程序實現admin, non-admin (casual)
用戶樣式特權,但它只在GUI級別上。如何根據不同類型的用戶隱藏,啓用,更改WPF GUI?
因此,例如,要禁用一些GridViewColumns
,隱藏一些按鈕等
是什麼在WPF做到這一點的正確方法?
我打算爲用戶類型實現一個枚舉。但之後,我不知道如何啓用/禁用GridViewColumns
,隱藏/顯示按鈕。
任何想法?
所以我想爲應用程序實現admin, non-admin (casual)
用戶樣式特權,但它只在GUI級別上。如何根據不同類型的用戶隱藏,啓用,更改WPF GUI?
因此,例如,要禁用一些GridViewColumns
,隱藏一些按鈕等
是什麼在WPF做到這一點的正確方法?
我打算爲用戶類型實現一個枚舉。但之後,我不知道如何啓用/禁用GridViewColumns
,隱藏/顯示按鈕。
任何想法?
這取決於你是否希望能夠在飛行中改變主題(因爲實質上這就是你想要做的)(我假設你這麼做)。
我沒有這個做我自己,但我想應該是這樣的:
ContentTemplate
或每一塊UI,你想使主題化DataTemplate
模板使用{DynamicResource}
ResourceDictionary
對象,一個每個「主題」,使用ResourceDictionary.MergedDictionaries
爲了說明,您Application
將使用默認的字典是這樣的:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="themes\default.theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
而且你會添加/刪除字典的東西,如
ResourceDictionary theme = (ResourceDictionary)Application.LoadComponent(themeUri);
Resources.MergedDictionaries.Add(theme);
更新:我搜索了一下,發現的一個更完整的例子就是我「M描述:Can WPF themes be used to include multiple skins for an application that can be changed at runtime?
一種實現方式是創建一個包含權限的對象,將其綁定到根數據上下文,並使用屬性觸發器來啓用/禁用UI的各個部分。其他信息可以在here找到。
感謝喬恩,你的意思是我應該設計不同的XAML文件爲每個主題?如果是這樣的話,最初的基礎xaml會是什麼樣子?只是一個空的xaml代碼與你顯示的app.resources? – 2011-03-11 00:53:56
@Joan:幾乎無論你喜歡什麼。我將從「真正的」默認主題開始,但它確實取決於用戶的信息何時/如何提供給您的應用程序。 – Jon 2011-03-11 00:57:15
謝謝喬恩,我想我現在明白了。 – 2011-03-11 01:10:33