프로젝트

일반

사용자정보

개정판 a197bf6f

IDa197bf6f1e12992af9c31f6e23330bb10e020e62
상위 0d97ab05
하위 6ba927e6

김태성이(가) 5달 전에 추가함

issue #00000 sign manager 수정

Change-Id: I37e286b276179d93d61c50d419ad6861b611bc75

차이점 보기:

FinalService/KCOM_FinalService/FinalProcess/FinalProcess.csproj
81 81
      <Project>{629dc8cd-d458-47ef-8f02-cd12c7001c3e}</Project>
82 82
      <Name>KCOMDataModel</Name>
83 83
    </ProjectReference>
84
    <ProjectReference Include="..\MarkupToPDF\MarkupToPDF.csproj">
85
      <Project>{a714bd67-8aac-4ed8-8ecf-7853c3549a68}</Project>
86
      <Name>MarkupToPDF</Name>
87
    </ProjectReference>
84 88
  </ItemGroup>
85 89
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
86 90
</Project>
KCOM/App.xaml.cs
42 42
        public static EndpointAddress _EndPoint_Symbol;
43 43
        public static string UserName;
44 44
        public static IKCOM.ViewInfo ViewInfo;
45

  
45 46
        public static string urlHost;
46 47
        public static string urlPort;
47 48
        public static string urlHost_DB;
KCOM/Controls/SignManager.xaml
1 1
<UserControl
2
    xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="KCOM.Controls.SignManager"
3
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7
        xmlns:local="clr-namespace:KCOM.Controls" Background="White"
8
        mc:Ignorable="d" Height="350" Width="1000">
2
    x:Class="KCOM.Controls.SignManager"
3
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6
    xmlns:local="clr-namespace:KCOM.Controls"
7
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8
    xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
9
    Width="1000"
10
    Height="350"
11
    Background="White"
12
    mc:Ignorable="d">
9 13
    <UserControl.Resources>
10 14
        <FontFamily x:Key="MayQueen">pack://application:,,,/Resources/#May Queen</FontFamily>
11 15
    </UserControl.Resources>
12 16
    <Grid>
13 17
        <Grid.RowDefinitions>
14
            <RowDefinition Height="Auto"/>
15
            <RowDefinition Height="*"/>
18
            <RowDefinition Height="Auto" />
19
            <RowDefinition Height="*" />
16 20
        </Grid.RowDefinitions>
17 21
        <Grid Margin="10">
18 22
            <Grid.ColumnDefinitions>
19
                <ColumnDefinition Width="Auto"/>
20
                <ColumnDefinition/>
21
                <ColumnDefinition Width="Auto"/>
22
                <ColumnDefinition Width="Auto"/>
23
                <ColumnDefinition Width="Auto" />
24
                <ColumnDefinition />
25
                <ColumnDefinition Width="Auto" />
26
                <ColumnDefinition Width="Auto" />
27
                <ColumnDefinition Width="Auto" />
23 28
            </Grid.ColumnDefinitions>
24 29
            <StackPanel Orientation="Horizontal" Visibility="Collapsed">
25
                <TextBlock Text="Input Signature as Text : " FontSize="14"/>
26
                <telerik:RadWatermarkTextBox x:Name="txtInput" WatermarkContent="Input Text" Width="150"/>
30
                <TextBlock FontSize="14" Text="Input Signature as Text : " />
31
                <telerik:RadWatermarkTextBox
32
                    x:Name="txtInput"
33
                    Width="150"
34
                    WatermarkContent="Input Text" />
27 35
            </StackPanel>
28
            <telerik:RadButton Margin="10,0,10,0" Grid.Column="2" Click="Reset_Click" telerik:StyleManager.Theme="Office2016">
36
            <telerik:RadButton
37
                Grid.Column="2"
38
                Margin="10,0,10,0"
39
                telerik:StyleManager.Theme="Office2016"
40
                Click="OpenImage_Click">
29 41
                <StackPanel Orientation="Horizontal">
30
                    <Image Source="/KCOM;component/Resources/Images/MenuImage_new/Rotate_Minus.png" Width="16" Height="16"/>
31
                    <TextBlock Text="Reset" FontSize="14" Margin="5,0,0,0"/>
42
                    <Image
43
                        Width="16"
44
                        Height="16"
45
                        Source="/KCOM;component/Resources/Images/MenuImage_new/picture.png" />
46
                    <TextBlock
47
                        Margin="5,0,0,0"
48
                        FontSize="14"
49
                        Text="Open File" />
32 50
                </StackPanel>
33 51
            </telerik:RadButton>
34
            <telerik:RadButton Margin="10,0,10,0" Grid.Column="3" Click="Save_Click" telerik:StyleManager.Theme="Office2016">
52
            <telerik:RadButton
53
                Grid.Column="3"
54
                Margin="10,0,10,0"
55
                telerik:StyleManager.Theme="Office2016"
56
                Click="Reset_Click">
35 57
                <StackPanel Orientation="Horizontal">
36
                    <Image Source="/KCOM;component/Resources/Images/MenuImage_new/diskette2.png" Width="16" Height="16"/>
37
                    <TextBlock Text="Save" FontSize="14" Margin="5,0,0,0"/>
58
                    <Image
59
                        Width="16"
60
                        Height="16"
61
                        Source="/KCOM;component/Resources/Images/MenuImage_new/Rotate_Minus.png" />
62
                    <TextBlock
63
                        Margin="5,0,0,0"
64
                        FontSize="14"
65
                        Text="Reset" />
66
                </StackPanel>
67
            </telerik:RadButton>
68
            <telerik:RadButton
69
                Grid.Column="4"
70
                Margin="10,0,10,0"
71
                telerik:StyleManager.Theme="Office2016"
72
                Click="Save_Click">
73
                <StackPanel Orientation="Horizontal">
74
                    <Image
75
                        Width="16"
76
                        Height="16"
77
                        Source="/KCOM;component/Resources/Images/MenuImage_new/diskette2.png" />
78
                    <TextBlock
79
                        Margin="5,0,0,0"
80
                        FontSize="14"
81
                        Text="Save" />
38 82
                </StackPanel>
39 83
            </telerik:RadButton>
40 84
        </Grid>
41
        <Grid  Grid.Row="1">
85
        <Grid Grid.Row="1">
42 86
            <Grid.RowDefinitions>
43
                <RowDefinition Height="9*"/>
44
                <RowDefinition Height="Auto"/>
87
                <RowDefinition Height="9*" />
88
                <RowDefinition Height="Auto" />
45 89
            </Grid.RowDefinitions>
46
            <TextBlock Text="Draws a signature." IsHitTestVisible="False" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontStyle="Italic" FontSize="50" FontWeight="Bold" Foreground="#FFB2B2B2"/>
47
            <TextBlock Text="{Binding Text, ElementName=txtInput, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" x:Name="txtSignStr" IsHitTestVisible="False" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="150" Foreground="Black" FontFamily="/KCOM;component/Resources/#May Queen"/>
48
            <Canvas x:Name="editCanvas" Background="Transparent"   Margin="5,5" Height="220" ClipToBounds="True">
49
                <InkCanvas Grid.RowSpan="2" x:Name="SignCanvas" Height="220" VerticalAlignment="Stretch"  Background="Transparent" SourceUpdated="SignCanvas_SourceUpdated" StrokeCollected="SignCanvas_StrokeCollected" Width="{Binding ActualWidth, ElementName=editCanvas, Mode=OneWay}">
90
            <TextBlock
91
                Grid.RowSpan="2"
92
                HorizontalAlignment="Center"
93
                VerticalAlignment="Center"
94
                FontSize="50"
95
                FontStyle="Italic"
96
                FontWeight="Bold"
97
                Foreground="#FFB2B2B2"
98
                IsHitTestVisible="False"
99
                Text="Draws a signature." />
100
            <TextBlock
101
                x:Name="txtSignStr"
102
                Grid.RowSpan="2"
103
                HorizontalAlignment="Center"
104
                VerticalAlignment="Center"
105
                FontFamily="/KCOM;component/Resources/#May Queen"
106
                FontSize="150"
107
                Foreground="Black"
108
                IsHitTestVisible="False"
109
                Text="{Binding Text, ElementName=txtInput, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
110
            <Canvas
111
                x:Name="editCanvas"
112
                Height="220"
113
                Margin="5,5"
114
                Background="Transparent"
115
                ClipToBounds="True">
116
                <InkCanvas
117
                    x:Name="SignCanvas"
118
                    Grid.RowSpan="2"
119
                    Width="{Binding ActualWidth, ElementName=editCanvas, Mode=OneWay}"
120
                    Height="220"
121
                    VerticalAlignment="Stretch"
122
                    Background="Transparent"
123
                    SourceUpdated="SignCanvas_SourceUpdated"
124
                    StrokeCollected="SignCanvas_StrokeCollected">
50 125
                    <InkCanvas.DefaultDrawingAttributes>
51
                        <DrawingAttributes Color="Black" Width="10" Height="10"/>
126
                        <DrawingAttributes
127
                            Width="10"
128
                            Height="10"
129
                            Color="Black" />
52 130
                    </InkCanvas.DefaultDrawingAttributes>
53 131
                </InkCanvas>
54 132
            </Canvas>
55
            <Rectangle Margin="10,10" Height="200" Stroke="#FF767676"/>
133
            <Rectangle
134
                Height="200"
135
                Margin="10,10"
136
                Stroke="#FF767676" />
56 137
            <!--<Border Margin="10,10"  Width="200" Height="100" BorderThickness="1" BorderBrush="#FF767676"  VerticalAlignment="Top" HorizontalAlignment="Right">
57 138
                <Image x:Name="preview" Stretch="Fill"/>
58 139
            </Border>-->
KCOM/Controls/SignManager.xaml.cs
1 1
using KCOM.Common;
2
using Microsoft.Win32;
2 3
using System;
3 4
using System.Collections.Generic;
4 5
using System.IO;
......
31 32
            this.Loaded += SignManager_Loaded;
32 33
        }
33 34

  
34
        private async void SignManager_Loaded(object sender, RoutedEventArgs e)
35
        private void SignManager_Loaded(object sender, RoutedEventArgs e)
35 36
        {
36
            var strokeData = await ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.GetSignStrokesAsync(App.ViewInfo.ProjectNO, App.ViewInfo.UserID);
37
            if(strokeData != null)
37
            var signItem = MarkupToPDF.MarkupContext.GetUserSignItem(App.ViewInfo.UserID);  //await ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.GetSignStrokesAsync(App.ViewInfo.ProjectNO, App.ViewInfo.UserID);
38

  
39
            if (signItem != null)
38 40
            {
39
                StringToStroke(strokeData);
41
                StringToStroke(signItem.Strokes);
40 42
            }
41 43
        }
42 44

  
......
76 78

  
77 79
                    if (result2 > 0)
78 80
                    {
81
                        MarkupToPDF.MarkupContext.SetUserSignItem(App.ViewInfo.UserID, signImage,strokesData);
82

  
79 83
                        RadWindow.Alert(new DialogParameters()
80 84
                        {
81 85
                            Content = "Save Signature Completed."
82 86
                        });
87

  
83 88
                    }
84 89
                    //var signData = await ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.GetSignDataAsync(App.ViewInfo.ProjectNO, App.ViewInfo.UserID);
85 90

  
......
201 206
            }
202 207
        }
203 208

  
209
        public StrokeCollection ConvertImageToStrokeCollection(BitmapImage image)
210
        {
211
            InkCanvas inkCanvas = new InkCanvas();
212
            inkCanvas.Width = image.Width;
213
            inkCanvas.Height = image.Height;
214

  
215
            // WriteableBitmap 생성
216
            WriteableBitmap writeableBitmap = new WriteableBitmap(image);
217

  
218
            // 픽셀 데이터를 저장할 배열 생성
219
            int stride = writeableBitmap.PixelWidth * (writeableBitmap.Format.BitsPerPixel / 8);
220
            byte[] pixelData = new byte[writeableBitmap.PixelHeight * stride];
221

  
222
            // 픽셀 데이터 복사
223
            writeableBitmap.CopyPixels(pixelData, stride, 0);
224

  
225
            for (int y = 0; y < writeableBitmap.PixelHeight; y++)
226
            {
227
                for (int x = 0; x < writeableBitmap.PixelWidth; x++)
228
                {
229
                    int index = y * stride + x * (writeableBitmap.Format.BitsPerPixel / 8);
230
                    byte blue = pixelData[index];
231
                    byte green = pixelData[index + 1];
232
                    byte red = pixelData[index + 2];
233
                    byte alpha = pixelData[index + 3];
234

  
235
                    Color color = Color.FromArgb(alpha, red, green, blue);
236

  
237
                    // 특정 색상(예: 검정색)인 경우에만 Stroke로 변환
238
                    if (red <= 150 && green <= 150 && blue <= 150 && alpha == 255)
239
                    {
240
                        StylusPointCollection points = new StylusPointCollection();
241
                        points.Add(new StylusPoint(x, y));
242
                        Stroke stroke = new Stroke(points);
243
                        inkCanvas.Strokes.Add(stroke);
244
                    }
245
                }
246
            }
247

  
248
            return inkCanvas.Strokes;
249
        }
250

  
204 251
        private string GetSignData()
205 252
        {
206 253
            string result = "";
......
241 288
                txtInput.IsEnabled = true;
242 289
            }
243 290
        }
291

  
292
        private void OpenImage_Click(object sender, RoutedEventArgs e)
293
        {
294
            OpenFileDialog openFileDialog = new OpenFileDialog();
295
            openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.png, *.bmp)|*.jpg;*.jpeg;*.png;*.bmp";
296

  
297
            // 파일 선택 대화 상자 표시
298
            if (openFileDialog.ShowDialog() == true)
299
            {
300
                // 선택한 파일 경로 가져오기
301
                string filePath = openFileDialog.FileName;
302

  
303
                // BitmapImage 생성 및 파일 로드
304
                BitmapImage bitmapImage = new BitmapImage();
305
                bitmapImage.BeginInit();
306
                bitmapImage.UriSource = new Uri(filePath);
307
                bitmapImage.EndInit();
308

  
309
                var strokes = ConvertImageToStrokeCollection(bitmapImage);
310

  
311
                SignCanvas.Strokes.Add(strokes);
312
            }
313
        }
244 314
    }
245 315

  
246 316
    [Serializable]
KCOM/Events/Implementation/TopMenuEvent.cs
1575 1575
            }
1576 1576
        }
1577 1577

  
1578
        private void SignManagerEvent(object sender,RoutedEventArgs e)
1578
        private void SignManagerEvent(object sender, RoutedEventArgs e)
1579 1579
        {
1580
            OpenSignManager();
1581
        }
1582

  
1583
        private void OpenSignManager()
1584
        { 
1580 1585
            SignManager signManager = new SignManager();
1581 1586

  
1582 1587
            RadWindow signManagerPop = new RadWindow
KCOM/KCOM.csproj
361 361
  </PropertyGroup>
362 362
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Default|x64'">
363 363
    <DebugSymbols>true</DebugSymbols>
364
    <OutputPath>..\Setup\</OutputPath>
364
    <OutputPath>bin\x64\Release_Default\</OutputPath>
365 365
    <DefineConstants>TRACE;DEBUG;CUSTOM_BINDING;_BASIC_BINDING</DefineConstants>
366 366
    <WarningLevel>3</WarningLevel>
367 367
    <DebugType>full</DebugType>
......
1543 1543
call $(SolutionDir)obfuscarBuild.Bat $(SolutionDir) $(TargetDir) $(ProjectDir)obfuscar.xml
1544 1544
xcopy /s "$(TargetDir)Obfuscator_Output" "$(TargetDir)" /Y /F
1545 1545

  
1546
rmdir "$(TargetDir)Obfuscator_Output" /s /q
1547
rem rmdir "$(SolutionDir)Setup\Release_default\" /s /q
1546
del "$(TargetDir)mapping.txt" /q
1547

  
1548
rem rmdir "$(TargetDir)Obfuscator_Output" /s /q
1549
rmdir "$(SolutionDir)Setup\Release_default\" /s /q
1548 1550

  
1549 1551
xcopy "$(TargetDir)" "$(SolutionDir)Setup\Release_default\" /S /Y /F 
1550
xcopy $(TargetDir)..\packages\potrace.exe
1552
rem xcopy $(TargetDir)..\packages\potrace.exe
1551 1553

  
1552
del "$(TargetDir)mapping.txt" /q
1553 1554
 cd $(SolutionDir)
1554 1555
 call "PublishSign.bat"
1555 1556
 rem call "appCast_Daelim.bat" "@(VersionNumber)"
KCOM/MainWindow.xaml.cs
87 87
            Telerik.Windows.Controls.RadWindow.Alert(parameters);
88 88
        }
89 89

  
90
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
90
        private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
91 91
        {
92 92
            InitializeComponent();
93 93
            //Loaded 이벤트에서 MaxHeight를 설정 모니터가 1개일때만
......
163 163
                    //this.dzMainMenu.FavoritePane.Visibility = Visibility.Collapsed;
164 164
                    //this.dzMainMenu.drawingRotateCanvas.IsHitTestVisible = false;
165 165
                }
166
                else
167
                {
168
                    string signData = await this.dzMainMenu.BaseTaskClient.GetSignDataAsync(App.ViewInfo.ProjectNO, App.ViewInfo.UserID);
169
                    string signStrokes = await this.dzMainMenu.BaseTaskClient.GetSignStrokesAsync(App.ViewInfo.ProjectNO, App.ViewInfo.UserID);
170

  
171
                    if (signData != null && signStrokes != null)
172
                    {
173
                        MarkupToPDF.MarkupContext.SetUserSignItem(App.ViewInfo.UserID, signData, signStrokes);
174
                    }
175
                    else
176
                    {
177
                        SignManager signManager = new SignManager();
178

  
179
                        RadWindow signManagerPop = new RadWindow
180
                        {
181
                            MinWidth = 1200,
182
                            MinHeight = 500,
183
                            //Header = "My Check List",
184
                            Header = "",
185
                            Content = signManager,
186
                            Owner = this,
187
                            //ResizeMode = System.Windows.ResizeMode.CanResizeWithGrip,
188
                            ResizeMode = System.Windows.ResizeMode.CanResize,
189
                            WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen,
190
                        };
191
                        StyleManager.SetTheme(signManagerPop, new Office2013Theme());
192

  
193
                        //CheckPop.ShowDialog();
194
                        signManagerPop.Show();
195
                    }
196
                }
166 197

  
167 198
                try
168 199
                {
KCOM/Properties/AssemblyInfo.cs
51 51
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
52 52
// 지정되도록 할 수 있습니다.
53 53
// [assembly: AssemblyVersion("1.0.*")]
54
[assembly: AssemblyVersion("5.5.23.0")]
55
[assembly: AssemblyFileVersion("5.5.23.0")]
54
[assembly: AssemblyVersion("5.5.6.0")]
55
[assembly: AssemblyFileVersion("5.5.6.0")]
56 56
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
KCOM/Resources/WindowStyle.xaml
38 38
    </Style>
39 39

  
40 40
    <Style x:Key="VS2012WindowStyle" TargetType="{x:Type cWin:CustomWindow}">
41
        <!--20240808 IRON 수정
42
        AllowsTransparency, WindowStyle 주석 및 Template 주석으로 CustomWindow Theme를 적용 안함. (최대화 관련하여 기본 Winform으로 변경) -->
43
        
41
        <!--
42
            20240808 IRON 수정
43
            AllowsTransparency, WindowStyle 주석 및 Template 주석으로 CustomWindow Theme를 적용 안함. (최대화 관련하여 기본 Winform으로 변경)
44
        -->
45

  
44 46
        <!--<Setter Property="AllowsTransparency" Value="True" />
45 47
        <Setter Property="WindowStyle" Value="None" />-->
46 48
        <Setter Property="AllowsTransparency" Value="False" />
......
51 53
        <!--<Setter Property="Template">
52 54
            <Setter.Value>
53 55
                <ControlTemplate TargetType="{x:Type cWin:CustomWindow}">
54
                    --><!--
55
                        7 is a magic number. By default Windows fits a maximized window with Margin
56
                        7 7 7 7 to fill entire screen (WPF .Net 4.5). Larger numbers produce a gap
57
                        between maximized window and screen edges; smaller numbers show parts of
58
                        the window outside of the current monitor on multi-display computers.
59
                    --><!--
56
        -->
57
        <!--
58
            7 is a magic number. By default Windows fits a maximized window with Margin
59
            7 7 7 7 to fill entire screen (WPF .Net 4.5). Larger numbers produce a gap
60
            between maximized window and screen edges; smaller numbers show parts of
61
            the window outside of the current monitor on multi-display computers.
62
        -->
63
        <!--
60 64
                    <Grid TextOptions.TextFormattingMode="Ideal" TextOptions.TextRenderingMode="Auto">
61 65
                        <Border
62 66
                            x:Name="PART_Border"
KCOM/Services/BaseServices.cs
419 419

  
420 420
                    var userInfoList = ViewerDataModel.Instance._markupInfoList.GroupBy(f => f.UserID).Select(f => new MarkupUserInfo { UserId = f.Key, UserName = f.First().UserName });
421 421

  
422
                    userInfoList.ToList().ForEach(x => ViewerDataModel.Instance._markupUserList.Add(x));
422
                    userInfoList.ToList().ForEach(x =>
423
                    {
424
                        ViewerDataModel.Instance._markupUserList.Add(x);
425

  
426
                        if (MarkupToPDF.MarkupContext.GetUserSignItem(x.UserId) == null)
427
                        {
428
                            string signData = BaseClient.GetSignData(App.ViewInfo.ProjectNO, x.UserId);
429
                            string signStrokes = BaseClient.GetSignStrokes(App.ViewInfo.ProjectNO, x.UserId);
430

  
431
                            if (signData != null && signStrokes != null)
432
                            {
433
                                MarkupToPDF.MarkupContext.SetUserSignItem(x.UserId, signData, signStrokes);
434
                            }
435
                        }
436
                    });
423 437

  
424 438
                    e.Result.ToList().ForEach(d =>
425 439
                    {
MarkupToPDF/Controls/Etc/SignControl.cs
539 539
                };
540 540

  
541 541
                if (s.UserNumber != null)
542
                {
543
                    var _sign = GetUserSign.GetSign(s.UserNumber, sProjectNo);
544
                    if (_sign != null)
542
                { 
543
                    var _signItem = MarkupContext.GetUserSignItem(s.UserNumber);
544

  
545
                    if (_signItem != null)
545 546
                    {
546
                        byte[] imageBytes = System.Convert.FromBase64String(_sign);
547
                        byte[] imageBytes = System.Convert.FromBase64String(_signItem.Data);
547 548

  
548 549
                        BitmapImage returnImage = new BitmapImage();
549 550

  
MarkupToPDF/MarkupToPDF.csproj
410 410
    <Compile Include="Controls\Text\ArrowTextControl.cs" />
411 411
    <Compile Include="Controls\Text\TextControl.cs" />
412 412
    <Compile Include="ICommentRect.cs" />
413
    <Compile Include="MarkupContext.cs" />
413 414
    <Compile Include="Properties\AssemblyInfo.cs" />
414 415
    <Compile Include="Properties\Settings.Designer.cs">
415 416
      <AutoGen>True</AutoGen>
......
443 444
    <Compile Include="Serialize\S_Control\Detail\S_TextControl.cs" />
444 445
    <Compile Include="Serialize\S_Control\Detail\S_TriControl.cs" />
445 446
    <Compile Include="Settings.cs" />
447
    <Compile Include="UserSingItem.cs" />
446 448
  </ItemGroup>
447 449
  <ItemGroup>
448 450
    <Page Include="Controls\Custom\CustomText.xaml">

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)