窗口动态内容中的窗口

时间:2016-09-15 22:08:20

标签: c# wpf xaml

我对WPF来说有点新鲜。

我想为我的所有内容使用一个窗口,内容会有很大差异,Window.Resources内容也需要改变。

@;

作为一个例子,我想使用一些第三方内容,如FluidKit的ElementFlow。

有许多关于如何动态加载UserControls的好例子,但是在Window中的Window上没有任何内容。我找到的最好的是:Changing content dynamically in wpf window

我想在我的项目中有多个* .xaml文件,并将内容动态加载到当前窗口。

修改

我喜欢WPF Frame,但我无法加载和卸载Window.Resources:

<Window x:Class="NS01.WPF01"
        xmlns:b="clr-namespace:NS01"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
	    xmlns:local="clr-namespace:FluidKit.Showcase.ElementFlow"
	    xmlns:Controls="clr-namespace:FluidKit.Controls;assembly=FluidKit"
                
        Loaded="Window_Loaded"
        Title="NS01"
	    WindowStartupLocation="CenterScreen"
        Width="1280"
        Height="720"
        WindowStyle="ThreeDBorderWindow">

    <Window.Resources>
      ...
    </Window.Resources>
  
    <Grid>
        ...
    </Grid>
  
  </Window>

<Window x:Class="NS01.WPF01"
        xmlns:b="clr-namespace:NS01"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
	    xmlns:local="clr-namespace:FluidKit.Showcase.ElementFlow"
	    xmlns:Controls="clr-namespace:FluidKit.Controls;assembly=FluidKit"
                
        Loaded="Window_Loaded"
        Title="NS01"
	    WindowStartupLocation="CenterScreen"
        Width="1280"
        Height="720"
        WindowStyle="ThreeDBorderWindow">

    <Window.Resources>
      ...
    </Window.Resources>
  
    <Frame Name="ContentHolder" />
  
  </Window>

你知道,我已探索过:

ContentHolder.Source = new Uri("/XAML/Repository/Page1.xaml", UriKind.Relative);

我想做的是什么?我可以从单个xaml文件中加载所有必需的内容吗?

感谢。

修改

这是一种方法,但不是我真正想要的方法:

SolidColorBrush SolidColorBrushRed = new SolidColorBrush(Colors.Red);
this.Resources.Add("RedBrushResource", SolidColorBrushRed);

<Page x:Class="NS01.XAML.Repository.Page1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  xmlns:local="clr-namespace:NS01.XAML.Repository"
  mc:Ignorable="d" 
  d:DesignHeight="300" d:DesignWidth="300"
  Title="Page1">

<Grid>

    <TextBlock Text="Welcome" FontSize="18" Foreground="{DynamicResource ResourceKey=textForeColorResource}" Margin="80,32,66,219"/>

</Grid>

</Page>

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:NS01.XAML.Resources">

<SolidColorBrush x:Key="textForeColorResource" Color="Blue"/>

</ResourceDictionary>

0 个答案:

没有答案