아래와 같이 컨트롤을 Grid에 넣으면 FindName으로 찾을수 엄따

http://msdn.microsoft.com/ko-kr/library/vstudio/system.windows.frameworkelement.registername(v=vs.100).aspx

실패

 
            DocumentViewer dv = new DocumentViewer();
            dv.Name = "documentViewer1";
            dv.Document = doucmentResult;
            this.printGrid.Children.Add(dv);

성공

            NameScope.SetNameScope(printGrid, new NameScope());

            this.printGrid.Children.Clear();
        
            DocumentViewer dv = new DocumentViewer();
            dv.Name = "documentViewer1";
            dv.Document = doucmentResult;
            this.printGrid.Children.Add(dv);
            printGrid.RegisterName(dv.Name, dv);

 

찾기

var documentViewer1 = (DocumentViewer)this.printGrid.FindName("documentViewer1");

배경을 Path 으로 넣었더니 너무 무거워서 이미지로 대체

반복적으로 이미지를 넣고 싶을때 ImageBrush를 사용하면된다.

http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=KO-KR&k=k(System.Windows.Media.ImageBrush);k(VS.XamlEditor);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv3.5)&rd=true

image

 

 

 

        <StackPanel xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Margin="0,0,0,127">
            <StackPanel.Background>
                <ImageBrush ImageSource="Rail.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,30,30" />
            </StackPanel.Background>
        </StackPanel>

 

ViewportUnits
가져오거나는 BrushMappingMode 를 지정 하는 열거형 여부 값을는 Viewport, 크기와 위치를 나타냅니다의 TileBrush 기준으로 타일, 출력 영역의 크기에 상대적입니다. (TileBrush에서 상속됨)

 

Viewport
위치와 크기에 대 한 기본 바둑판을 가져오거나는 TileBrush. (TileBrush에서 상속됨)

 

소켓통신으로 오브젝트를 넘기는데 이놈이 INotifyPropertyChanged 구현 되어져 있음 소켓으로 데이터를 넘기면 아래와같이 나옴

image

{"'WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

어셈블리의 'System.ComponentModel.PropertyChangedEventManager' 형식이 serializable로 표시되어 있지 않습니다."}

 

해결방법

PropertyChangedEventHandler 이놈은 serializable 안함 ㅋ

 

        //public  event PropertyChangedEventHandler PropertyChanged;
        [field: NonSerialized]
        public event PropertyChangedEventHandler PropertyChanged;

        public void NotifyPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

비주얼 스튜디오 XML 주석 도움말 만들기

http://shfb.codeplex.com/

 

 

설치방법

image

 

 

image

 

필요한 파일을 스텝을 밟아 가면서 필요한 파일을 설치한다.

 

image

 

3. ChmBuilder.config 파일에 한글을 추가한다.
우리는 주석에서 한글을 사용하기때문에 한글이 인식되도록 설정해줘야한다.
C:\Program Files\Sandcastle\ProductionTools에 ChmBuilder.config파일이 있다.
그 파일에서 언어 부분에 한국어를 추가해주면된다. 빨간색의 Language 선언부분을 복사해서 붙여넣는다.

 

 

사용방법

프로젝트의 속성에서 XML 문서파일을 생성한다.

image

image

 

빌드 후 만들어진 XML 문서

 

image

 

 

image

 

새로운 프로젝트를 임의의 이름으로 생성한다.

image

프로젝트 생성모습

image

 

오른쪽 Project Explorer 에서 빌드 할 소스 선택

image

한국어선택

image

 

빌드를 누르면 끝~ (시간은 좀 걸림 ㅎㄷㄷ… 한글은 더 걸림 ㅎㄷㄷㄷㄷㄷㄷ)

image

빌드하고 있는중…..

 

 

결과물

 

image

UIElement target

Point origin = new Point();

origin.X = target.RenderTransform.Value.OffsetX;

origin.Y = target.RenderTransform.Value.OffsetY;

아래의 메소드는 X 좌표를 움직이는데 자기 위치를 시작으로 특정 좌표까지 움직인다.

 

 

        public void CanvsXY(UIElement target, double newX)
        {
            Point origin = new Point();
            origin.X = target.RenderTransform.Value.OffsetX;
            origin.Y = target.RenderTransform.Value.OffsetY;
            var top = Canvas.GetTop(target);
            var left = Canvas.GetLeft(target);
            TranslateTransform trans = new TranslateTransform();
            target.RenderTransform = trans;
            DoubleAnimation anim2 = new DoubleAnimation(origin.X , newX - left, TimeSpan.FromSeconds(10));
            trans.BeginAnimation(TranslateTransform.XProperty, anim2);

        }

CREATE TABLESPACE 테이블스페이스이름
    DATAFILE
        'C:\ORACLE\ORADATA\FILE_SPECIFICATION1' SIZE 106496
    BLOCKSIZE 8192
    DEFAULT NOCOMPRESS
    ONLINE
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

 

 

image

 

테이블 스페이스 선택

image

 

image

 

 

image

 

확인 끝~

 

List<T>로 다 되지만 이런게 있다고 알아두자

Queue, Stack 로 나름 장점이 있음 ㅋ

 

      List<string> list = new List<string>();
            list.Add("kojaedoo1");
            list.Add("kojaedoo2");
            list.Add("kojaedoo3");
            list.Add("kojaedoo4");

            Console.WriteLine("List--------------------------------");
            for (int i = list.Count-1; 0 <= i; i--)
            {
                Console.WriteLine(list[i]);
                //list.RemoveAt(i); //항목 제거하기
            
            }
            list.Reverse();
            Console.WriteLine("List Reverse-------------------------");
            for (int i = list.Count - 1; 0 <= i; i--)
            {
                Console.WriteLine(list[i]);

            }

            //개체의 선입선출(FIFO) 컬렉션을 나타냅니다.
            Queue<string> jobQueue = new Queue<string>();
            jobQueue.Enqueue("kojaedoo1");
            jobQueue.Enqueue("kojaedoo2");
            jobQueue.Enqueue("kojaedoo3");
            jobQueue.Enqueue("kojaedoo4");


          

            Console.WriteLine("Queue--------------------------------");
            for (int i = jobQueue.Count; 0 < jobQueue.Count; i--)
            {
                Console.WriteLine(jobQueue.Dequeue()); //Queue에서 개체를 제거하면서 반환
            }




            //개체의 LIFO(후입선출) 컬렉션을 나타냅니다.
            Stack<string> numbers = new Stack<string>();
            numbers.Push("kojaedoo1");
            numbers.Push("kojaedoo2");
            numbers.Push("kojaedoo3");
            numbers.Push("kojaedoo4");
            numbers.Push("kojaedoo5");

            Console.WriteLine("Stack--------------------------------");
            for (int i = numbers.Count; 0 < numbers.Count; i--)
            {
                Console.WriteLine(numbers.Pop()); //Stack에서 개체를 제거하면서 반환
            }

 

            this.label1.Background = (SolidColorBrush)new BrushConverter().ConvertFrom("#FFA36262");
            System.Windows.Media.Color col = (System.Windows.Media.Color)new ColorConverter().ConvertFrom("#FFA36262");

기존의 엔티티를 사용하면서 직접쿼리를 아래와 같이 할수있습니다.

엔티티로는 안되는  SEQUENCE 값이라든지(평션등을 이용하면 가능하지만 귀찮음) 

이런걸 사용 할 때  사용하면 좋을 꺼 같습니다.

Oracle

            OracleParameter op = new OracleParameter("NameVal", "kojaedoo");
            OracleParameter op2 = new OracleParameter("CompanyCodeVal", "0001");

            string query = @"INSERT INTO KOJAEDOO.PERSON (EMP_CODE, ""NAME"", COMPANY_CODE) VALUES(SEQUENCE1.NEXTVAL,:NameVal, :CompanyCodeVal )";
            db.ExecuteStoreCommand(query, op , op2);

MS Sql

예를 들어 다음의 두 메서드 호출은 동일합니다.

context.ExecuteStoreQuery<Product>("select * from Products where pid = {0}", 1);

context.ExecuteStoreQuery<Product>("select * from Products where pid = @p0", new SqlParameter { ParameterName = "p0", Value = 1 });
 
a

MSDN

using (SchoolEntities context =
    new SchoolEntities())
{
    // The following three queries demonstrate 
    // three different ways of passing a parameter.
    // The queries return a string result type.

    // Use the parameter substitution pattern.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < {0}", 5))
    {
        Console.WriteLine(name);
    }

    // Use parameter syntax with object values.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < @p0", 5))
    {
        Console.WriteLine(name);
    }
    // Use an explicit SqlParameter.
    foreach (string name in context.ExecuteStoreQuery<string>
        ("Select Name from Department where DepartmentID < @p0",
            new SqlParameter { ParameterName = "p0", Value = 5 }))
    {
        Console.WriteLine(name);
    }
}
msdn: http://msdn.microsoft.com/ko-kr/library/ee358769.aspx
 
C:\Windows\system32\inetsrv\config\applicationHost.config set to Deny:

<section name="staticContent" overrideModeDefault="Deny" />

<section name="caching" overrideModeDefault="Deny" />

<section name="requestFiltering" overrideModeDefault="Deny" />

Changing overrideModeDefault attribute to Allow fixed the issue.

Deny 설정되어져 있는 값을  찾아서 Allow로 변경

 

+ Recent posts