Ответы пользователя по тегу WPF
  • Как убрать черную обводку при наведении мыши на кнопку?

    @yuopi
    C# developer
    Надо либо Border'у выставить свойство
    RenderOptions.EdgeMode="Aliased"
    , но тогда графика совсем не о чем

    Либо рисовать второй бордер:
    Код

    <Style x:Key="RoundedButton" TargetType="Button">
                <Setter Property="Grid.Column" Value="1"/>
                <Setter Property="Margin" Value="20 32"/>
                <Setter Property="HorizontalContentAlignment" Value="Center" />
                <Setter Property="VerticalContentAlignment" Value="Center" />
                <Setter Property="FontSize" Value="14"/>
                <Setter Property="FontFamily" Value="Verdana"/>
                <Setter Property="Foreground" Value="White"/>
                <Setter Property="Background" Value="Transparent"/>
    
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Grid>
                                <Border Name="RoundedButtonBorder"
                                Margin="0"
                                CornerRadius="15"
                                Background="{TemplateBinding Background}"
                                BorderBrush="White"
                                BorderThickness="3"
                                >
                                    <ContentPresenter HorizontalAlignment="Center"
                                              VerticalAlignment="Center"
                                             >
                                    </ContentPresenter>
                                </Border>
                                <Border Name="RoundedButtonBorderHidden"
                                Margin="0"
                                CornerRadius="15"
                                BorderBrush="White"
                                BorderThickness="5"
                                        Visibility="Hidden"
                                >
                                    <ContentPresenter HorizontalAlignment="Center"
                                              VerticalAlignment="Center"
                                             >
                                    </ContentPresenter>
                                </Border>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="true">
                                    <Setter Property="Background" Value="White" />
                                    <Setter Property="Foreground" Value="Black" />
                                    <Setter TargetName="RoundedButtonBorderHidden" Property="Visibility" Value="Visible"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    Ответ написан
    5 комментариев
  • Как перенести метод для кнопок в отдельный класс в WPF?

    @yuopi
    C# developer
    Создаете класс Animations.cs
    Пишите там эти методы
    public void OpenOptions(...) //передаем все необходимые параметры
            {  ...  }


    в MainForm создаем экземпляр класса Animation и вызываем просто нужные методы из него
    private void OpenOptions(object sender, RoutedEventArgs e)
    {  
    Animations.OpenOptions(...,...,...);
    }
    Ответ написан
    Комментировать