문제

그래픽이 만든 .ai-file에서 변환 하여이 Upbutton.xaml 파일을 만들었지 만 작동하지는 않습니다. 버튼을위한 일종의 템플릿/스타일을 만들려고 생각했지만 버튼은 버튼 객체가 아닌 사각형으로 구성됩니다.

나는 지난 목요일 부터이 문제를 해결했고, 구글을 찍고 내가 찾은 모든 것을 시도했지만 그것은 단지 작동하지 않을 것입니다.

우리는 이것을 별도의 XAML 파일로 '리소스'로 사용하고, 그것을 app.xaml에 추가 하고이 페인트 전체 응용 프로그램에 걸쳐 모든 사각형을하도록합니다. 우리가 구축하는 응용 프로그램은 XAML과 가능한 한 작은 C# 코딩을 사용해야합니다.

누구 든지이 일을 할 수 있도록 도와 줄 수 있습니까?

코드 샘플에 대해 알려주는 thx :)

<?xml version="1.0" encoding="utf-8"?>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <DrawingBrush x:Key="UnnamedObject0" Stretch="Uniform">
        <DrawingBrush.Drawing>
            <DrawingGroup>
                <DrawingGroup.Children>
                    <GeometryDrawing Geometry="F1 M 141.781,503.813C 140.737,503.813 139.891,504.659 139.891,505.703L 139.891,524.601C 139.891,525.645 140.737,526.491 141.781,526.491L 160.679,526.491C 161.723,526.491 162.568,525.645 162.568,524.601L 162.568,505.703C 162.568,504.659 161.723,503.813 160.679,503.813L 141.781,503.813 Z ">
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="0.499992,-1.61488e-005" EndPoint="0.499992,1">
                                <LinearGradientBrush.GradientStops>
                                    <GradientStop Color="#FFD1D3D4" Offset="0"/>
                                    <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                </LinearGradientBrush.GradientStops>
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z ">
                        <DrawingGroup.Children>
                            <GeometryDrawing Geometry="F1 M 139.891,505.703C 139.891,504.659 140.737,503.814 141.781,503.814L 160.679,503.814C 161.723,503.814 162.568,504.659 162.568,505.703L 162.568,524.6C 162.568,525.644 161.723,526.491 160.679,526.491L 141.781,526.491C 140.737,526.491 139.891,525.644 139.891,524.6L 139.891,505.703 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFA7A9AC"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingGroup.Children>
                    </DrawingGroup>
                    <GeometryDrawing Geometry="F1 M 144.048,506.081C 143.005,506.081 142.159,506.927 142.159,507.969L 142.159,522.333C 142.159,523.377 143.005,524.223 144.048,524.223L 158.412,524.223C 159.455,524.223 160.301,523.377 160.301,522.333L 160.301,507.969C 160.301,506.927 159.455,506.081 158.412,506.081L 144.048,506.081 Z ">
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="0.499951,1.00003" EndPoint="0.499951,-3.36442e-006">
                                <LinearGradientBrush.GradientStops>
                                    <GradientStop Color="#FFE6E8E8" Offset="0"/>
                                    <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                </LinearGradientBrush.GradientStops>
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <GeometryDrawing Geometry="F1 M 144.645,515.816L 147.521,515.816L 147.521,521.56L 151.24,521.56L 154.939,521.56L 154.939,515.816L 157.813,515.816L 151.219,508.743L 144.645,515.816 Z ">
                        <GeometryDrawing.Brush>
                            <LinearGradientBrush StartPoint="0.499986,1.00003" EndPoint="0.499986,5.23812e-005">
                                <LinearGradientBrush.GradientStops>
                                    <GradientStop Color="#FF50C400" Offset="0"/>
                                    <GradientStop Color="#FF91F456" Offset="1"/>
                                </LinearGradientBrush.GradientStops>
                            </LinearGradientBrush>
                        </GeometryDrawing.Brush>
                    </GeometryDrawing>
                    <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z ">
                        <DrawingGroup.Children>
                            <GeometryDrawing Geometry="F1 M 151.24,521.56L 147.521,521.56L 147.521,515.815L 144.646,515.815L 151.218,508.743L 157.814,515.815L 154.938,515.815L 154.938,521.56L 151.24,521.56 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="1.33333" LineJoin="Round" Brush="#FF076F00"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingGroup.Children>
                    </DrawingGroup>
                </DrawingGroup.Children>
            </DrawingGroup>
        </DrawingBrush.Drawing>
    </DrawingBrush>
</ResourceDictionary>
도움이 되었습니까?

해결책

다음과 같은 스타일로 넣어야합니다.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="{x:Type Rectangle}">
        <Setter Property="Fill">
            <Setter.Value>
                <DrawingBrush Stretch="Uniform">
                    <DrawingBrush.Drawing>
                        <DrawingGroup>
                            <DrawingGroup.Children>
                                <GeometryDrawing Geometry="F1 M 141.781,503.813C 140.737,503.813 139.891,504.659 139.891,505.703L 139.891,524.601C 139.891,525.645 140.737,526.491 141.781,526.491L 160.679,526.491C 161.723,526.491 162.568,525.645 162.568,524.601L 162.568,505.703C 162.568,504.659 161.723,503.813 160.679,503.813L 141.781,503.813 Z ">
                                    <GeometryDrawing.Brush>
                                        <LinearGradientBrush StartPoint="0.499992,-1.61488e-005" EndPoint="0.499992,1">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStop Color="#FFD1D3D4" Offset="0"/>
                                                <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
                                    </GeometryDrawing.Brush>
                                </GeometryDrawing>
                                <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z ">
                                    <DrawingGroup.Children>
                                        <GeometryDrawing Geometry="F1 M 139.891,505.703C 139.891,504.659 140.737,503.814 141.781,503.814L 160.679,503.814C 161.723,503.814 162.568,504.659 162.568,505.703L 162.568,524.6C 162.568,525.644 161.723,526.491 160.679,526.491L 141.781,526.491C 140.737,526.491 139.891,525.644 139.891,524.6L 139.891,505.703 Z ">
                                            <GeometryDrawing.Pen>
                                                <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFA7A9AC"/>
                                            </GeometryDrawing.Pen>
                                        </GeometryDrawing>
                                    </DrawingGroup.Children>
                                </DrawingGroup>
                                <GeometryDrawing Geometry="F1 M 144.048,506.081C 143.005,506.081 142.159,506.927 142.159,507.969L 142.159,522.333C 142.159,523.377 143.005,524.223 144.048,524.223L 158.412,524.223C 159.455,524.223 160.301,523.377 160.301,522.333L 160.301,507.969C 160.301,506.927 159.455,506.081 158.412,506.081L 144.048,506.081 Z ">
                                    <GeometryDrawing.Brush>
                                        <LinearGradientBrush StartPoint="0.499951,1.00003" EndPoint="0.499951,-3.36442e-006">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStop Color="#FFE6E8E8" Offset="0"/>
                                                <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
                                    </GeometryDrawing.Brush>
                                </GeometryDrawing>
                                <GeometryDrawing Geometry="F1 M 144.645,515.816L 147.521,515.816L 147.521,521.56L 151.24,521.56L 154.939,521.56L 154.939,515.816L 157.813,515.816L 151.219,508.743L 144.645,515.816 Z ">
                                    <GeometryDrawing.Brush>
                                        <LinearGradientBrush StartPoint="0.499986,1.00003" EndPoint="0.499986,5.23812e-005">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStop Color="#FF50C400" Offset="0"/>
                                                <GradientStop Color="#FF91F456" Offset="1"/>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
                                    </GeometryDrawing.Brush>
                                </GeometryDrawing>
                                <DrawingGroup ClipGeometry="F1 M 0,0L 793.701,0L 793.701,1122.52L 0,1122.52L 0,0 Z ">
                                    <DrawingGroup.Children>
                                        <GeometryDrawing Geometry="F1 M 151.24,521.56L 147.521,521.56L 147.521,515.815L 144.646,515.815L 151.218,508.743L 157.814,515.815L 154.938,515.815L 154.938,521.56L 151.24,521.56 Z ">
                                            <GeometryDrawing.Pen>
                                                <Pen Thickness="1.33333" LineJoin="Round" Brush="#FF076F00"/>
                                            </GeometryDrawing.Pen>
                                        </GeometryDrawing>
                                    </DrawingGroup.Children>
                                </DrawingGroup>
                            </DrawingGroup.Children>
                        </DrawingGroup>
                    </DrawingBrush.Drawing>
                </DrawingBrush>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

그런 다음 app.xaml에 리소스를 다음과 같이 포함시킵니다.

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/RectStyle.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

x : key를 설정하지 않음 <Style> 리소스는 지정된 채우기로 애플리케이션의 모든 사각형을 수정합니다 ... 사각형에 대한 더 많은 스타일을 원한다면 x : key = "rectstyle1"속성을 <Style> 사각형을 다음과 같이 사용해야하는 스타일을 지정하십시오.

<Rectangle Style="{StaticResource RectStyle1}" />

재미있게 보내세요 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top