我在我的應用程序,我用來添加額外的聯繫人到本地數據庫的飛出。此彈出窗口當前被聲明爲頁面資源,並且完全按照我需要的方式進行聲明,但是爲了在不同的頁面上重新使用它,我需要將xaml用於彈出窗口以及任何attatched事件複製到每個頁面需要使用它(有幾個地方可能需要添加一個聯繫人)應用程序廣泛訪問在UWP飛出
是否有一種全局定義彈出方式的方法,以便我只需要引用它而不是每次硬編碼?我考慮使用ContentDialog
(因爲它可以被定義爲它自己的模塊),但我認爲這不是合適的
我在我的應用程序,我用來添加額外的聯繫人到本地數據庫的飛出。此彈出窗口當前被聲明爲頁面資源,並且完全按照我需要的方式進行聲明,但是爲了在不同的頁面上重新使用它,我需要將xaml用於彈出窗口以及任何attatched事件複製到每個頁面需要使用它(有幾個地方可能需要添加一個聯繫人)應用程序廣泛訪問在UWP飛出
是否有一種全局定義彈出方式的方法,以便我只需要引用它而不是每次硬編碼?我考慮使用ContentDialog
(因爲它可以被定義爲它自己的模塊),但我認爲這不是合適的
如果在代碼中完全創建不是一個選項,您可以創建一個ResourceDictionary背景。首先Styles.xaml
:
<ResourceDictionary
x:Class="MyClass.Styles"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Flyout x:Key="MyFlyout">
<!-- my flyout code -->
</Flyout>
</ResourceDictionary>
這裏最重要的是x:Class
,其中值必須(在這種情況下Styles.cs
)的命名空間+名稱,我們現在正在創建的相關類:
namespace MyClass {
public partial class Styles {
public Styles() {
this.InitializeComponent();
}
// my events from flyout
}
}
確保該類聲明爲partial
,並在構造函數中調用this.InitializeComponent()
。
現在添加一個參考:
<Application
...
xmlns:myClass="using:MyClass">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<myClass:Styles />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
然後你就可以訪問在彈出的靜態資源,如:
<Button Flyout="{StaticResource MyFlyout}" />
我喜歡這種方法。我會嘗試一下,如果它合適的話就標記出來 – Takarii
是否有一個理由,爲什麼你不能創建在C#代碼中完全飛出?然後,您可以簡單地創建一個返回Flyout的靜態方法。 – schumi1331
@ schumi1331它是我考慮的事情,但它意味着重新創建佈局。我希望重用已經寫好的XAML – Takarii