我在GridView(A)內部有一個GridView(B)。 GridView-A的樣式與GridView-B的樣式不同,但是當我的GridView-B繼承GridView-A的所有樣式時會出現問題。另一個網格內的網格樣式
我不希望發生這種情況。
是他們的任何方式,我只能在xaml中實現這一點嗎?
我在GridView(A)內部有一個GridView(B)。 GridView-A的樣式與GridView-B的樣式不同,但是當我的GridView-B繼承GridView-A的所有樣式時會出現問題。另一個網格內的網格樣式
我不希望發生這種情況。
是他們的任何方式,我只能在xaml中實現這一點嗎?
只要按照下面的步驟,讓我知道你是否有任何問題。在這些之中,你已經知道了。可能是你想念什麼。
1)將ResourceDictionary添加爲樣式表。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:XYZApplication">
<!-- Style 1-->
<Style x:Key="GridStyle1" TargetType="{x:Type Grid}">
<Setter Property="Background" Value="BlanchedAlmond"></Setter>
<Setter Property="Margin" Value="1,1,1,1"></Setter>
</Style>
<!-- Style 2-->
<Style x:Key="GridStyle2" TargetType="{x:Type Grid}">
<Setter Property="Background" Value="Aqua"></Setter>
<Setter Property="Margin" Value="5,5,5,5"></Setter>
</Style>
</ResourceDictionary>
2)添加資源文件到您的用戶控件/窗口如下...
<UserControl x:Class="XYZApplication.Views.Payment"
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:XYZApplication.Views"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Style/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
</UserControl>
3)使用這些特定的樣式來指定網格中的用戶控件/窗口
<Grid Style="{StaticResource GridStyle1}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="1" Style="{StaticResource GridStyle2}" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Bank Name</Label>
<Label Grid.Column="1" Grid.Row="0">Branch</Label>
<Label Grid.Column="2" Grid.Row="0">Account holder</Label>
<Label Grid.Column="3" Grid.Row="0">Account Number</Label>
<Label Grid.Column="4" Grid.Row="0">Balance</Label>
<Label Grid.Column="0" Grid.Row="1">Bank of ...</Label>
<Label Grid.Column="1" Grid.Row="1">...Branch</Label>
<Label Grid.Column="2" Grid.Row="1">My Name</Label>
<Label Grid.Column="3" Grid.Row="1">Account Number 123</Label>
<Label Grid.Column="4" Grid.Row="1">1 billion</Label>
</Grid>
</Grid>
內
您也可以在後面的代碼中添加這兩種樣式。 希望它有幫助!
您應該明確定義gridviews的樣式。在WPF中,子控件繼承父控件的屬性,可能是你有這個問題。您可能已經爲gridviewA定義了樣式,而不是爲gridviewB定義了樣式,或者您爲所有gridview使用了相同的樣式。如果你可以分享代碼,我可以告訴你究竟是什麼問題。
你有任何代碼可以顯示嗎?這樣只有人可以幫你 –
我不認爲GridView B繼承了A的風格。您可能已經指定了所有GridView將使用的通用樣式。 Gridview在Gridview B以外有不同的風格嗎? (這很讓人困惑) –
(當然,你可以爲GridView B指定一個特定的樣式,然後去GridView Id =「GridViewB」Style =「{StaticResource bGridViewStyle}」>') –