powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Всегда ли надо писать IValueConverter
5 сообщений из 5, страница 1 из 1
Всегда ли надо писать IValueConverter
    #38806005
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть свойство, которое необходимо изменить на константное значение
Код: xml
1.
Width="{Binding ElementName=window,Path=ActualHeight, Converter={StaticResource SizeConverter}}



Т.е.:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public class SizeConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return (double)value - 100;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return DependencyProperty.UnsetValue;
        }
    }




Отсюда вопрос, всегда ли надо писать что-то подобное?
Если да, то как унифицировать SizeConverter, чтобы он принимал 2 значения вроде этого:
Код: xml
1.
X="{Binding Converter={StaticResource XCoordConverter}, ConverterParameter=425;105}" 


, но один из параметров приходил по Binding-у, а второй был константой?
...
Рейтинг: 0 / 0
Всегда ли надо писать IValueConverter
    #38806182
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavluha,

нашел IMultiValueConverter, думаю подойдет
...
Рейтинг: 0 / 0
Всегда ли надо писать IValueConverter
    #38808027
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как для данного элемента сделать MultiBinding
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<Image Panel.ZIndex="1" Width="{Binding Path=Radius}">
                                <Image.Source>
                                    <DrawingImage>
                                        <DrawingImage.Drawing>
                                            <GeometryDrawing Brush="{StaticResource Blue1Brush}" Pen="{StaticResource BluePen1}">
                                                <GeometryDrawing.Geometry>
                                                    <EllipseGeometry RadiusX="50" RadiusY="50"></EllipseGeometry>
                                                </GeometryDrawing.Geometry>
                                            </GeometryDrawing>
                                        </DrawingImage.Drawing>
                                    </DrawingImage>
                                </Image.Source>
                            </Image>
...
Рейтинг: 0 / 0
Всегда ли надо писать IValueConverter
    #38808245
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

вы пытаетесь задать ширину с помощь высоты, это вообще нормально?

для размещения элементов использует не биндинг, а панели (наследуют класс Panel). В панели переопределяют MeasureOverride и ArrangeOverride методы и размещают элементы в окне как душе угодно, там же задается размер этих контролов.
Опишите, что конкретно вам нужно, я скину вам пример такой панели
...
Рейтинг: 0 / 0
Всегда ли надо писать IValueConverter
    #38808456
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,

Есть контрол:

Код: xml
1.
2.
3.
4.
            <local:RotateControl x:Name="rtc1" 
                                 Width="{Binding ElementName=window,Path=ActualHeight, Converter={StaticResource SizeConverter}}"
                                 Height="{Binding ElementName=window, Path=ActualHeight, Converter={StaticResource SizeConverter}}"
                                 Radius="{Binding ElementName=window, Path=ActualHeight, Converter={StaticResource RadiusConverter}}" />



Он составной.
Состоит из нескольких окружностей разного радиуса. И вот этот радиус должен рассчитываться
Сейчас это делается так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 <Image Panel.ZIndex="2" Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Radius, 
                                Converter={StaticResource SizeConverter2}}"  >
                                <Image.Source>
                                    <DrawingImage>
                                        <DrawingImage.Drawing>
                                            <GeometryDrawing Brush="White" Pen="{StaticResource BluePen1}">
                                                <GeometryDrawing.Geometry>
                                                    <EllipseGeometry RadiusX="50" RadiusY="50"></EllipseGeometry>
                                                </GeometryDrawing.Geometry>
                                            </GeometryDrawing>
                                        </DrawingImage.Drawing>
                                    </DrawingImage>
                                </Image.Source>
                            </Image>




А вы не знаете, как вот сюда прикрутить IMultiValueConverter?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                                <Image RenderTransformOrigin=".5 .5" Margin="0, 0, 0, 0"  VerticalAlignment="Top" 
                                       HorizontalAlignment="Center" Width="16" Height="16" Panel.ZIndex="1" 
                                        Source="pack://application:,,,/Astro;component/Images/Aries.png">
                                    <Image.RenderTransform>
                                        <TransformGroup>
                                            <RotateTransform Angle="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Angle, Converter={StaticResource AngleConverter}}"></RotateTransform>
                                            <TranslateTransform X="{Binding Converter={StaticResource XCoordConverter}, ConverterParameter=425;15}"  
                                                                Y="{Binding Converter={StaticResource YCoordConverter}, ConverterParameter=425;15}"/>
                                        </TransformGroup>
                                    </Image.RenderTransform>
                                </Image>



Интересует TranslateTransform
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Всегда ли надо писать IValueConverter
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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