powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как изменить размеры конролов в UserControl при изменении размеров окна?
15 сообщений из 15, страница 1 из 1
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37471606
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал UserControl, в него кинул Expander. Поместил UserControl в окно. Когда меняю размер окна то размер UserControl меняется, а Expander нет, хотя если все внутренности UserControl поместить в окно напрямую, то все нормально изменяется(см. скриншот).
Код UserControl:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
	x:Class="WpfApplication2.UserControl1"
	x:Name="UserControl"
	 mc:Ignorable="d" Width="Auto" Height="Auto">

	<Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch">
		<Grid.ColumnDefinitions>
			<ColumnDefinition />
		</Grid.ColumnDefinitions>
		<Expander Name="expander1" Header="Expander" Grid.Column="0" Grid.ColumnSpan="1" Style="{DynamicResource ExpanderStyle1}" VerticalAlignment="Center" d:LayoutOverrides="Width">
			<Grid Background="#FFE5E5E5"/>
		</Expander>
	</Grid>
</UserControl>
Код окна:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic" xmlns:local="clr-namespace:WpfApplication2" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
	x:Class="WpfApplication2.MainWindow"
	x:Name="Window"
	Title="MainWindow"
	Width="640" Height="480">
	
	<Grid x:Name="LayoutRoot">
		<Grid.ColumnDefinitions>
			<ColumnDefinition/>
		</Grid.ColumnDefinitions>
		<local:UserControl1 Margin="122.182,74,429.715,0" VerticalAlignment="Top" d:LayoutOverrides="Width">
			<local:UserControl1.Background>
				<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
					<GradientStop Color="Black" Offset="0"/>
					<GradientStop Color="#FFEB0909" Offset="1"/>
				</LinearGradientBrush>
			</local:UserControl1.Background>
		</local:UserControl1>		
		<Grid Height="23" Margin="114,35,429.715,0" VerticalAlignment="Top">
			<Grid.ColumnDefinitions>
				<ColumnDefinition/>
			</Grid.ColumnDefinitions>
			<Expander Grid.Column="0" Header="Expander" Margin="0,0,0,0" VerticalAlignment="Top" Background="#00A32525" Style="{DynamicResource ExpanderStyle1}" d:LayoutOverrides="VerticalAlignment">
				<Grid Background="#FFE5E5E5"/>
			</Expander>
		</Grid>
	</Grid>
</Window>

из кода вырезаны ресурсы(много текста + их сгенерил Exprsion Blend, я ничего в коде не менял)
ресурсы окна:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
<Window.Resources>
		<Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.RowDefinitions>
									<RowDefinition Height="19"/>
									<RowDefinition Height="*"/>
								</Grid.RowDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="-90"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderUpHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.ColumnDefinitions>
									<ColumnDefinition Width="19"/>
									<ColumnDefinition Width="*"/>
								</Grid.ColumnDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="180"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderLeftHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.RowDefinitions>
									<RowDefinition Height="19"/>
									<RowDefinition Height="*"/>
								</Grid.RowDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="90"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderHeaderFocusVisual">
			<Setter Property="Control.Template">
				<Setter.Value>
					<ControlTemplate>
						<Border>
							<Rectangle Margin="0" SnapsToDevicePixels="true" Stroke="Black" StrokeThickness="1" StrokeDashArray="1 2"/>
						</Border>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="#FFF70000" SnapsToDevicePixels="False">
								<Grid.ColumnDefinitions>
									<ColumnDefinition Width="19"/>
									<ColumnDefinition Width="*"/>
								</Grid.ColumnDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center"/>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter Grid.Column="1" HorizontalAlignment="Center" Margin="0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderStyle1" TargetType="{x:Type Expander}">
			<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
			<Setter Property="Background" Value="Transparent"/>
			<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
			<Setter Property="VerticalContentAlignment" Value="Stretch"/>
			<Setter Property="BorderBrush" Value="Transparent"/>
			<Setter Property="BorderThickness" Value="1"/>
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type Expander}">
						<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="3" SnapsToDevicePixels="true">
							<DockPanel>
								<ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" Style="{StaticResource ExpanderDownHeaderStyle}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
								<ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
							</DockPanel>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsExpanded" Value="true">
								<Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Right">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Up">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Left">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
							</Trigger>
							<Trigger Property="IsEnabled" Value="false">
								<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
	</Window.Resources>


Ресурсы UserConrtrol:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
<UserControl.Resources>
		<Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.RowDefinitions>
									<RowDefinition Height="19"/>
									<RowDefinition Height="*"/>
								</Grid.RowDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="-90"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderUpHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.ColumnDefinitions>
									<ColumnDefinition Width="19"/>
									<ColumnDefinition Width="*"/>
								</Grid.ColumnDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="180"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderLeftHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.RowDefinitions>
									<RowDefinition Height="19"/>
									<RowDefinition Height="*"/>
								</Grid.RowDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center">
										<Path.LayoutTransform>
											<RotateTransform Angle="90"/>
										</Path.LayoutTransform>
									</Path>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" Grid.Row="1" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderHeaderFocusVisual">
			<Setter Property="Control.Template">
				<Setter.Value>
					<ControlTemplate>
						<Border>
							<Rectangle Margin="0" SnapsToDevicePixels="true" Stroke="Black" StrokeThickness="1" StrokeDashArray="1 2"/>
						</Border>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid Background="Transparent" SnapsToDevicePixels="False">
								<Grid.ColumnDefinitions>
									<ColumnDefinition Width="19"/>
									<ColumnDefinition Width="*"/>
								</Grid.ColumnDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Height="19" SnapsToDevicePixels="true" Width="19">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center"/>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ExpanderStyle1" TargetType="{x:Type Expander}">
			<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
			<Setter Property="Background" Value="Transparent"/>
			<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
			<Setter Property="VerticalContentAlignment" Value="Stretch"/>
			<Setter Property="BorderBrush" Value="Transparent"/>
			<Setter Property="BorderThickness" Value="1"/>
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type Expander}">
						<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="3" SnapsToDevicePixels="true">
							<DockPanel>
								<ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" Style="{DynamicResource ToggleButtonStyle1}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Width="70.103"/>
								<ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
							</DockPanel>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsExpanded" Value="true">
								<Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Right">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Up">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
							</Trigger>
							<Trigger Property="ExpandDirection" Value="Left">
								<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
								<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
								<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
							</Trigger>
							<Trigger Property="IsEnabled" Value="false">
								<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
		<Style x:Key="ToggleButtonStyle1" TargetType="{x:Type ToggleButton}">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="{x:Type ToggleButton}">
						<Border Padding="{TemplateBinding Padding}">
							<Grid SnapsToDevicePixels="False">
								<Grid.OpacityMask>
									<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
										<GradientStop Color="Black"/>
										<GradientStop Color="#E5F7F7F7" Offset="1"/>
									</LinearGradientBrush>
								</Grid.OpacityMask>
								<Grid.Background>
									<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
										<GradientStop Color="#FF0F720B" Offset="0"/>
										<GradientStop Color="#FF65FF00" Offset="1"/>
									</LinearGradientBrush>
								</Grid.Background>
								<Grid.ColumnDefinitions>
									<ColumnDefinition Width="19"/>
									<ColumnDefinition Width="*"/>
								</Grid.ColumnDefinitions>
								<Microsoft_Windows_Themes:ClassicBorderDecorator x:Name="Bd" BorderBrush="{x:Static Microsoft_Windows_Themes:ClassicBorderDecorator.ClassicBorderBrush}" BorderThickness="1" BorderStyle="None" Height="19" SnapsToDevicePixels="true" Width="19" Background="#00000000">
									<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" SnapsToDevicePixels="false" Stroke="{TemplateBinding Foreground}" StrokeThickness="1.5" VerticalAlignment="Center"/>
								</Microsoft_Windows_Themes:ClassicBorderDecorator>
								<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
							</Grid>
						</Border>
						<ControlTemplate.Triggers>
							<Trigger Property="IsChecked" Value="true">
								<Setter Property="Data" TargetName="arrow" Value="M 1,4.5  L 4.5,1  L 8,4.5"/>
							</Trigger>
							<Trigger Property="IsMouseOver" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinRaised"/>
							</Trigger>
							<Trigger Property="IsPressed" Value="true">
								<Setter Property="BorderStyle" TargetName="Bd" Value="ThinPressed"/>
							</Trigger>
						</ControlTemplate.Triggers>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
	</UserControl.Resources>
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37487553
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37487962
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Woldemar665,

читайте что такое: Margin

раскройте сакральную тайну создания в каждом Grid по одному ColumnDefenition,
при этом в каждом контроле делать следующее:
Код: plaintext
1.
Grid.Column="0" Grid.ColumnSpan="1"
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492611
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,

читайте что такое: Margin
Прочитал, но непонимаю как при помощи этого свойства можно задать заполнение всей области родительского контрола. Если вы знаете такой способ, то подскажите пожалуйста.
раскройте сакральную тайну создания в каждом Grid по одному ColumnDefenition,
при этом в каждом контроле делать следующее:

Grid.Column="0" Grid.ColumnSpan="1"

читайте пожалуйста внимательней:
Woldemar665 <Expander Name="expander1" Header="Expander" Grid.Column="0" Grid.ColumnSpan="1" Style="{DynamicResource ExpanderStyle1}" VerticalAlignment="Center" d:LayoutOverrides="Width">
<Grid Background="#FFE5E5E5"/>
</Expander>
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492701
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убери все лишнее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
	x:Class="WpfApplication2.UserControl1"
	x:Name="UserControl"
	 mc:Ignorable="d" >

	<Grid x:Name="LayoutRoot">    <!-- без надобности лучше не именовать -->
	<Expander Name="expander1"    <!-- без надобности лучше не именовать -->
                HorizontalAlignment="Stretch" <!-- !!!! ->
                VerticalAlignment="Stretch"     <!-- !!!! ->
                Header="Expander"                
                Style="{DynamicResource ExpanderStyle1}" >
			<Grid Background="#FFE5E5E5"/>
		</Expander>
	</Grid>
</UserControl>

А какой смысл оборачивать один Expander в контрол?
Можно от него наследоваться и тогда нужен только Resource со стилем, а не полный UserControl
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492790
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

Убрал, всеравно не изменяет размер.
В реальном проекте контрол содержит не только експандер, это я как пример привел.
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492821
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Woldemar665SeVa,

Убрал, всеравно не изменяет размер.
В реальном проекте контрол содержит не только експандер, это я как пример привел.
Публикуй весь xaml
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492888
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

Да тут без разници какой xaml, если заработает этот, то и с реальным разберусь
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492934
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Woldemar665,

авторПрочитал, но непонимаю как при помощи этого свойства можно задать заполнение всей области родительского контрола. Если вы знаете такой способ, то подскажите пожалуйста.
убрать вообще Margin!

Woldemar665читайте пожалуйста внимательней:
Woldemar665 <Expander Name="expander1" Header="Expander" Grid.Column="0" Grid.ColumnSpan="1" Style="{DynamicResource ExpanderStyle1}" VerticalAlignment="Center" d:LayoutOverrides="Width">
<Grid Background="#FFE5E5E5"/>
</Expander>
зачем в Гриде одна колонка которую заполняет контрол, если Грид сам растянет контрол по всей Ширина/Высота ?
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37492981
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,
убрать вообще Margin!
в юзерконтроле его нигде и нету
авторзачем в Гриде одна колонка которую заполняет контрол, если Грид сам растянет контрол по всей Ширина/Высота ?
убрал я её - результат тот же. Кстати в гриде по умолчанию задаётся одна колонка, и в неё помещаются контролы(если явно не создовать колонки)
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37493115
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Woldemar665,

для точного диагноза нужно показать стиль ExpanderStyle1, возможно косяк именно в стиле.
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37493119
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКа,

оказалось стиль есть, не увидел :)

а как себя ведет Expander без стиля, растягивается?
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37493542
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,

Да, растягивается. Спазибо за подсказку, буду курить стили.
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37493543
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,

Да, растягивается. Спазибо за подсказку, буду курить стили.
...
Рейтинг: 0 / 0
Как изменить размеры конролов в UserControl при изменении размеров окна?
    #37532175
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решена. В силях жестко задавалась ширина столбца. Поставил в звездах. Потом задал всем контролам ширину и высоту =Auto и HorizontalAlignment="Stretch" VerticalAlignment="Stretch". В главном окне UserControl-у тоже задал HorizontalAlignment="Stretch" VerticalAlignment="Stretch". И все заработало.
P.S.
Еще раз спасибо уТКа.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как изменить размеры конролов в UserControl при изменении размеров окна?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]