2014-11-27 6 views
0

저는 WPF 및 Visual Studio에 익숙하지 않아 응용 프로그램에 Modern UI (Metro) Charts을 사용하고 있습니다. 그러나 문제는 프로젝트에 특정 차트를 구현하기 위해 소스 코드의 일부를 변경해야한다는 것입니다.CodePlex 소스 코드 편집

특히 레이디 얼 게이지 조각 (래디얼 게이지 차트의 일부)을 크기 조정할 수 있도록 하드 코드 된 높이와 너비를 변경해야합니다. 나는 그것을 수행하는 코드의 예를 발견했다 (아래 참조). 그러나 그것을 구현할 위치를 파악할 수 없다. 원본은 Generic.XAML 다운로드 부분에 있습니다. 사람이 올바른 방향으로 나를 위해 단지 포인터를이 작업을 수행하는

<Style x:Key="RadialGaugeChartChartAreaStyle" TargetType="chart:ChartArea"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="chart:ChartArea"> 
        <Grid> 
         <Viewbox Height="Auto" Width="Auto"> 
          <ContentControl Content="{TemplateBinding Content}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" /> 
         </Viewbox> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

내가 찾고 있지 않다 - 나는 난처한 상황에 빠진입니다.

+0

필요한 것을 설명하기 위해 그림을 줄 수 있습니까? – kennyzx

+0

안녕하세요, 위 코드를 CodePlex 다운로드 소스 코드에 구현해야합니다. 원본은 높이와 너비가 하드 코드되어 있으며 다운로드의 Generic.XAML 파일에서 사용할 수 있습니다. https://modernuicharts.codeplex.com/releases/view/106190 DLL 참조 열기를 시도했지만 거기에 Generic.XAML 파일을 찾지 못했습니다. 이것이 올바른 곳인지 잘 모르겠습니다. –

답변

0

차트의 스타일을 수정할 필요가 없습니다.

사실, ViewBox의 도움으로 차트의 크기를 조정하는 것이 매우 간단합니다. 차트에 대해 decent size을 정의하는 것만으로 시리즈를 수용 할 수있을만큼 충분히 크지 만 오버 사이즈는 아닙니다.

예를 들어 시리즈에 4 개의 항목이있는 경우 decent size을 800 x 600으로 정의 할 수 있습니다. 시리즈에 항목이 더 많으면 더 큰 크기를 정의합니다.

<MetroChart:RadialGaugeChart Width="800" Height="600"> 
    <MetroChart:RadialGaugeChart.Series> 
     <MetroChart:ChartSeries> 
     <!----> 
     </MetroChart:ChartSeries> 
    </MetroChart:RadialGaugeChart.Series> 
</MetroChart:RadialGaugeChart> 

그리고 ViewBox 안에 넣으십시오.

ViewBox

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:MetroChart="clr-namespace:De.TorstenMandelkow.MetroChart;assembly=De.TorstenMandelkow.MetroChart" x:Class="WpfApplication1.MainWindow" 
    Title="MainWindow" Height="800" Width="1000"> 
<Grid> 
    <Viewbox> 
     <MetroChart:RadialGaugeChart Width="800" Height="600"> 
      <MetroChart:RadialGaugeChart.Series> 
       <MetroChart:ChartSeries 
         SeriesTitle="Errors" 
         DisplayMember="Category" 
         ValueMember="Number" 
         ItemsSource="{Binding Path=Errors}"> 
       </MetroChart:ChartSeries> 
      </MetroChart:RadialGaugeChart.Series> 
     </MetroChart:RadialGaugeChart> 
    </Viewbox> 
</Grid> 

는 사용 가능한 공간에 잘 차트를 확장 할 수 있습니다.

+0

해결 방법과 비슷하지만 완벽하게 작동합니다. 앞으로 ViewBox를 염두에 두어야합니다. –

+0

실제로. 데모를 실행하고 윈도우의 크기를 변경 한 후, 각 RadialGaugePiece에는 최대 및 최소 크기가 미리 정의되어 있고, 미리 정의 된 크기는 행의 수를 결정할 수있는 RadialGaugeChart에 의해 필요하다고 생각됩니다. 따라서 각 조각의 크기를 조정하는 대신 전체적으로 차트 크기를 조정하는 것이 더 쉽습니다. – kennyzx

+0

VB.NET 프로젝트에서 DDL을 참조하기 때문에 목표를 달성하지 못했습니다. C Sharp를 모르겠습니다. 소스 코드를 수정하려면 다음 중 하나를 수행해야합니다. 전체 프로젝트 변환 VB로 (지금은 저 밖에있는 것), C Sharp를 배우거나, 가능한 경우 두 가지를 함께 시도해보십시오. –