개정판 a197bf6f
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