Tôi nghĩ những gì bạn đang hỏi là bạn muốn có một tệp mã phía sau cho ResourceDipedia. Bạn hoàn toàn có thể làm điều này! Thực tế, bạn làm điều đó giống như đối với một Cửa sổ:
Giả sử bạn có một ResourceDipedia có tên MyResourceDipedia. Trong tệp MyResourceDipedia.xaml của bạn, đặt thuộc tính x: Class vào phần tử gốc, như vậy:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyCompany.MyProject.MyResourceDictionary"
x:ClassModifier="public">
Sau đó, tạo một mã phía sau tệp có tên MyResourceDipedia.xaml.cs với khai báo sau:
namespace MyCompany.MyProject
{
partial class MyResourceDictionary : ResourceDictionary
{
public MyResourceDictionary()
{
InitializeComponent();
}
... // event handlers ahead..
}
}
Và bạn đã hoàn thành. Bạn có thể đặt bất cứ điều gì bạn muốn vào mã phía sau: phương thức, thuộc tính và trình xử lý sự kiện.
== Cập nhật cho ứng dụng Windows 10 ==
Và chỉ trong trường hợp bạn đang chơi với UWP, có một điều nữa cần lưu ý:
<Application x:Class="SampleProject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:rd="using:MyCompany.MyProject">
<!-- no need in x:ClassModifier="public" in the header above -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- This will NOT work -->
<!-- <ResourceDictionary Source="/MyResourceDictionary.xaml" />-->
<!-- Create instance of your custom dictionary instead of the above source reference -->
<rd:MyResourceDictionary />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>